<?php
/**
 * View_Block
 *
 * Класс для отображения стандартных блоков
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.ru>
 * @version 2.1
 */
class View_Block extends View_Base{
	public $arrPaymentTypes;
	public $arrOtherPaymentTypes;

	public function __construct(){
		parent::__construct();
		Service_Debug::setDebug();		
		$this->arrPaymentTypes = array('Credit card' => Service_Translate::getText('Кредитная карта'), 'Bank transfer' => Service_Translate::getText('Банковский перевод'), 'Cash' => Service_Translate::getText('Оплата наличными'), 'Other' => Service_Translate::getText('Другое'));
		$this->arrOtherPaymentTypes = array('' => Service_Translate::getText('Выберите нужную')/*, 'Credit card' => Service_Translate::getText('Кредитная карта (в офисе, по факсу)')*/, 'Bank transfer' => Service_Translate::getText('Банковский перевод'), 'QIWI' => Service_Translate::getText('Оплата через терминалы ОСМП (QIWI)'), 'WebMoney' => Service_Translate::getText('Оплата через систему WebMoney'), 'Cash' => Service_Translate::getText('Оплата наличными в офисе'), 'Other' => Service_Translate::getText('Другая'));
	}
	
	public static function showCurrencySwitch() {
		echo '<div class="currencyChange">';
		$arrCurrencies = array('RUB' => Service_Translate::getText('р.'), 'USD' => '$', 'EUR' => '&euro;');
		foreach ($arrCurrencies as $currencyCode => $currencyValue) {
			echo '<button data-currency="' . $currencyCode . '"' . ($currencyCode == Service_Exchange::getCurrency() ? ' class="selected"' : '') . '>' . $currencyValue . '</button>';
		}
		//$objSelect = new Form_Select(array('class' => 'beautySelect', 'optionsArray' => array('RUB' => Service_Translate::getText('Рубли'), 'USD' => Service_Translate::getText('Доллары'), 'EUR' => Service_Translate::getText('Евро')),'value' => Service_Exchange::getCurrency(), 'js' => 'onchange="changeCurrency($(this).val());">'), 'mainCurrency', true);
		echo '</div>';
	}
			
	/** $(ia').data('img')
	 * Выводит шапку
	 * 
	 */
	public function showTop() {
		Service_Debug::setDebug();
		$objSession = User_Session::instance();
		$language = Service_Translate::getLang();
		echo '<div id="top"><header>';
			echo '<div class="header-first-line">';
					echo '<a id="logo" href="' . W_ABSPATH . '"></a>';
				echo '<div id="for-slogan" class="header-first-line">';
					echo '<div id="slogan">Грузоперевозки по Северо-Западному региону и всей России</div>';
				echo '</div>';
				echo '<div id="for-header-phone" class="header-first-line">';
					echo '<div id="header-phone" class="dark-block full-border"><span class="white-color">8-904-</span><span class="yellow-color">602-74-68</span>';
						echo '<noindex>';
							echo '<div id="account">';
								if ($objSession->isLoggedIn()) {
									$objUser = $objSession->getUser();
									$objUser->getField('first_name');
									echo '<a href="' . W_ABSPATH . 'auth/exit/">Выйти</a>';
								}
								else {
									echo '<a href="' . W_ABSPATH . 'auth/sign_in/">Войти</a>';
								}
							echo '</div>';
						echo '</noindex>';
					echo '</div>';
				echo '</div>';
			echo '</div>';
			echo '<div id="main-menu-box" class="full-border">';
				echo '<div id="main-menu" class="full-border">';
					echo '<div class="menu-section">';
						echo '<a href="' . W_ABSPATH . '">Главная</a>';
					echo '</div>';
					echo '<div class="menu-section">';
						echo '<a href="' . W_ABSPATH . 'directions">Направления </a>';
					echo '</div>';
					echo '<div class="menu-section">';
						echo '<a href="' . W_ABSPATH . 'orders/add">Подать заявку</a>';
					echo '</div>';
					echo '<div class="menu-section">';
						echo '<a href="' . W_ABSPATH . 'profile/orders">Личный кабинет</a>';
					echo '</div>';
					echo '<div class="menu-section">';
						echo '<a href="' . W_ABSPATH . 'contacts.htm">Контакты</a>';
					echo '</div>';
				echo '</div>';
			echo '</div>';
		/*
			
			if(Service_Function::isMobileBrowser()) {
				echo '<div class="go-to-mobile"><a href="' . $this->getLanguageUrl(W_MOBILE_FULLPATH, true) . '">' . Service_Translate::getText('Мобильная версия') . '</a></div>';
			}
		
			echo '<div id="logo">';
				echo '<a href="' . $this->getLanguageUrl(W_NONE_HTTPS_PATH) . '"></a>';
			echo '</div>';
			echo '<div id="slogan" class="popupTrigger">';
				echo '<p>' . Service_Translate::getText('Бронирование отелей — 0% комиссии. Оплата в отеле!') . '</p>';
			echo '</div>';
			echo '<div class="popupBox">';
	 			echo '<ul>';
					echo '<li>' . Service_Translate::getText('Hotels.ru не берет никакой комиссии за бронирование') . '</li>';
					echo '<li>' . Service_Translate::getText('Оплата происходит в отеле') . '</li>';
				echo '</ul>';
  		echo '</div>';
  			self::showCurrencySwitch();

			echo '<noindex>';
				echo '<div id="account">';
		    	echo '<div id="accountButton">';
					if ($objSession->isLoggedIn()) {
						$objUser = $objSession->getUser();		    	
				    	echo '<div class="firstBorder behavior"><div class="secondBorder behavior">';
				    		echo '<a href="#" onclick="return false;"><div class="people"></div><span>' . Service_Function::utf8_substr($objUser->getField('first_name'), 0, 15) . '</span><div class="about"></div></a>';
				   		echo '</div></div>';
				  	echo'</div>';
				  	echo '<div class="accountNearBlock login">';
				    	echo '<div class="firstBorder behavior">';
				     		echo '<div class="secondBorder behavior"><ul>';
				      		echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'profile/orders') . '">' . Service_Translate::getText('Мои бронирования') . '</a></li>';
				      		echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'profile') . '">' . Service_Translate::getText('Мой аккаунт') . '</a></li>';
				      		echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'profile/settings') . '/">' . Service_Translate::getText('Настройки') . '</a></li>';
				      		if ($objUser->getField('login')) echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'partner/') . '/">' . Service_Translate::getText('Статистика партнера') . '</a></li>';
				      		echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'auth/exit') . '">' . Service_Translate::getText('Выход') . '</a></li>';
			      		echo '</ul></div>';
		      		echo '</div>';
					}
					else {
						echo '<div class="firstBorder behavior"><div class="secondBorder behavior">';
							echo '<a href="#"><div class="people"></div><span>' . Service_Translate::getText('Ваш аккаунт') . '</span><div class="about"></div></a>';
						echo '</div></div>';
					echo'</div>';
						echo '<div id="authorization" class="accountNearBlock behavior">';
							echo '<div class="firstBorder behavior">';
								echo '<div class="secondBorder behavior">';
									echo '<div class="sideleft">';
										echo '<form action="" id="liveSignInForm">';
											echo '<p>';
												echo '<span>' . Service_Translate::getText('Электронный адрес или номер брони:') . '</span><br />';
												echo '<input type="text" id="auth_e_mail" />';
											echo '</p>';
											echo '<p>';
												echo '<span>' . Service_Translate::getText('Пароль или пин-код бронирования:') . '</span><br />';
												echo '<input type="password" id="auth_pass" />';
												echo '</p>';
											echo '<a href="' . W_NONE_HTTPS_PATH . 'auth/recovery/" class="recoveryLink">' . Service_Translate::getText('Вспомнить пароль') . '</a>';
											echo '<button class="standardSubmit" type="submit">' . Service_Translate::getText('Вход') . '</button>';
										echo '</form>';
									echo '</div>';
									echo '<div class="sideright">';
									echo '<a id="fb" class="standardSubmit" href="#" onclick="FB.login(function(response) {}, {scope: \'email\'});return false;"><img src="' . W_IMAGES . 'none.gif" alt="" /><span>' . Service_Translate::getText('Войти через facebook') . '</span></a>';
									echo '<div style="display:none;">';	
									View_Api::facebookInit();
									echo '</div>';
	      //echo '<div class="fb-login-button" data-scope="email">Login with Facebook</div>';
										//echo '<a id="vk" class="standardSubmit" href="#" onclick="alert(\'' . Service_Translate::getText('Эта опция временно не поддерживается.') . '\');return false;"><img src="' . W_IMAGES . 'none.gif" alt="" /><span>' . Service_Translate::getText('Войти через vkontakte') . '</span></a>';
										echo '<a class="standardSubmit" href="' . View_Base::getLanguageUrl(W_ABSPATH . 'auth/sign_up') . '"><span>' . Service_Translate::getText('Зарегистрироваться') . '</span></a>';
									echo '</div>';
								echo '</div>';
							echo '</div>';
						}
						echo '</div>';
					echo '</div>';			
		    echo '<div class="clear"></div>';
	    echo '</noindex>';
	    echo '<div id="select-language">';

	    $lang = 'en';
	    for ($i = 0; $i < 2; $i++) {
	    	echo '<div class="lang ' . $lang . '">';
	    		echo '<a class="flag" href="' . (Service_Translate::getLang() == $lang ? '#' : self::getLanguageUrl($_SERVER['REQUEST_URI'], false, true))	. '" title="' . ($lang == 'ru' ? 'Выбрать русский язык' : 'Select the English language') . '">';
	    			echo '<span class="flag flag-' . ($lang == 'ru' ? 'ru' : 'gb' ) . (Service_Translate::getLang() == $lang ? '' : ' flag-off') . '">&nbsp;</span>';
	    		echo '</a>';
	    		if (Service_Translate::getLang() == $lang) echo '<div class="blue-lang-stem"></div>';
	    	echo '</div>';
	    	$lang = 'ru';
	    }
			  echo '<div class="clear"></div>';
			  
	    echo '</div>';
	    */
    echo '</header></div>';
	}

	/**
	 * Метод отображает блок с часто бронируемыми отелями
	 * @param array $arrHotels - массив с часто бронируемыми отелями
	 */
	public function getOftenBookingHotels(array $arrHotels) {
		$returnStr = '';
		if (!empty($arrHotels)) {
			$objExchange = Service_Exchange::instance();
			$returnStr .= '<div id="often-hotels">';
				$returnStr .= '<h2 class="h-24">' . Service_Translate::getText('Часто бронируемые отели') . '</h2>';
				$returnStr .= '<div class="slider often-slider">';
					$returnStr .= '<div class="visible">';
						$returnStr .= '<table><tr>';
							foreach ($arrHotels as $arrHotel) {
							$returnStr .= '<td><div class="often-hotel">';
								$returnStr .= '<a class="poster" href="' . View_Hotel::getUrl($arrHotel) . '" style="background-image: url(' . View_Image::makeStaticUrl($arrHotel['url_max_300'], 'popular146x146') . ');"></a>';
								$returnStr .= '<div class="hotel-info">';
									$returnStr .= '<div class="stars stars' . $arrHotel['class'] . '"></div>';
									$returnStr .= '<div class="hotel-name"><a href="' . View_Hotel::getUrl($arrHotel) . '">' . View_Hotel::getName($arrHotel) . '</a></div>';
									$returnStr .= '<div class="city"><span title="Великобритания" class="flag flag-' . $arrHotel['country_code'] . '">&nbsp;</span>' . View_City::getName($arrHotel) . '</div>';
									$returnStr .= '<div class="price"><b>' . $objExchange->getSpanPrice($arrHotel['min_rate'], $arrHotel['currency_code']) . '</b></div>';
								$returnStr .= '</div>';
							$returnStr .= '</div></td>';
							}
						$returnStr .= '</tr></table>';
					$returnStr .= '</div>';
					$returnStr .= '<div class="arrow left"></div>';
					$returnStr .= '<div class="arrow right"></div>';
				$returnStr .= '</div>';
			$returnStr .= '</div>';
		}
		return $returnStr;
	}
	
	/**
	 * Метод выводит блок с наиболее популярными городами
	 * 
	 */
	public function showMostPopularCitiesBlock($arrPopularCities) {
		Service_Debug::setDebug();
		if (!$arrPopularCities) return false;
		echo '<div id="popularDestinations">';
			echo '<h2>' . Service_Translate::getText('Популярные направления') . '</h2>';
			echo '<ul class="popularCity">';
				$i = 0;
				$flag = true;
				$objExchange = Service_Exchange::instance();
				foreach ($arrPopularCities as $arrCity) {
					if (++$i <= 3) {
						echo '<li class="cityBlock">'; // Если убрать класс cityBlock, то будет другой вывод блоков
							echo '<div class="cityTitle"><span class="cityName"><a href="' . View_City::getUrl($arrCity) . '">' . View_City::getName($arrCity) . '</a></span> - <span class="nrHotels">' . $arrCity['nr_hotels'] . ' ' . Service_Function::getDeclination($arrCity['nr_hotels'], 'отель', 'отеля', 'отелей') . '</span></div>';
							echo '<div class="pictureRow">';
								echo '<a href="' . View_City::getUrl($arrCity)	. '" class="poster shadow-image" style="background-image: url(' . View_Image::makeStaticUrl(W_IMAGES . 'essence/city/' . $arrCity['ID_city'] . '.jpg', 'popular310x200') . ')">';
								echo '<div class="cityFlag"><img src="' . W_IMAGES . 'essence/country/' . $arrCity['country_code'] . '.gif" alt="" /></div>';
								echo '</a>';
								echo '<div class="prices">';
									echo '<div class="priceStars"><div class="textStars textStars5"></div><div class="starsIcon"></div><p> ' . Service_Translate::getText('от empty') . ' ' . $objExchange->getSpanPrice($arrCity['min_rate_5'], 'RUB') . '</p></div>';
									echo '<div class="priceStars"><div class="textStars textStars4"></div><div class="starsIcon"></div><p> ' . Service_Translate::getText('от empty') . ' ' . $objExchange->getSpanPrice($arrCity['min_rate_4'], 'RUB') . '</p></div>';
									echo '<div class="priceStars"><div class="textStars textStars3"></div><div class="starsIcon"></div><p> ' . Service_Translate::getText('от empty') . ' ' . $objExchange->getSpanPrice($arrCity['min_rate_3'], 'RUB') . '</p></div>';
								echo '</div>';
								echo '<div class="clear"></div>';
							echo '</div>';
						echo '</li>';
						if ($i == 3) {
							echo '<div class="clear"></div>';
							echo '</ul>';
							echo '<div class="cityLine"></div>';
						}
					}
					else {
						if ($flag) {
							echo '<ul class="small-popular-city">';
							$flag = false;
						}
						echo '<li>';
							echo '<div class="small-poster">';
								echo '<a href="' . View_City::getUrl($arrCity)	. '" class="shadow-image poster" style="background-image: url(' . View_Image::makeStaticUrl(W_IMAGES . 'essence/city/' . $arrCity['ID_city'] . '.jpg', 'popular150x97') . ')">';
									echo '<div class="cityFlag"><img src="' . W_IMAGES . 'essence/country/' . $arrCity['country_code'] . '.gif" alt="" /></div>';
								echo '</a>';
							echo '</div>';
							echo '<div class="cityName"><a href="' . View_City::getUrl($arrCity) . '">' . View_City::getName($arrCity) . '</a></div>';
							echo '<div class="nrHotels">' . $arrCity['nr_hotels'] . ' ' . Service_Function::getDeclination($arrCity['nr_hotels'], 'отель', 'отеля', 'отелей') . '</div>';
						echo '</li>';
					}
				}
				echo '<div class="clear"></div>';
				echo '</ul>';	
		echo '</div>';
	}
	
	public function getMostPopularCitiesBlock($arrPopularCities) {
		Service_Debug::setDebug();
		if (!$arrPopularCities) return false;
		$returnStr = '';
		$returnStr .= '<div id="popularDestinations">';
		$returnStr .= '<h2>' . Service_Translate::getText('Популярные направления') . '</h2>';
		$returnStr .= '<ul class="popularCity">';
		$i = 0;
		$flag = true;
		$objExchange = Service_Exchange::instance();
		foreach ($arrPopularCities as $arrCity) {
			if (++$i <= 3) {
				$returnStr .= '<li class="cityBlock">'; // Если убрать класс cityBlock, то будет другой вывод блоков
				$returnStr .= '<div class="cityTitle"><span class="cityName"><a href="' . View_City::getUrl($arrCity) . '">' . View_City::getName($arrCity) . '</a></span> - <span class="nrHotels">' . $arrCity['nr_hotels'] . ' ' . Service_Function::getDeclination($arrCity['nr_hotels'], 'отель', 'отеля', 'отелей') . '</span></div>';
				$returnStr .= '<div class="pictureRow">';
				$returnStr .= '<a href="' . View_City::getUrl($arrCity)	. '" class="poster shadow-image" style="background-image: url(' . View_Image::makeStaticUrl(W_IMAGES . 'essence/city/' . $arrCity['ID_city'] . '.jpg', 'popular310x200') . ')">';
				$returnStr .= '<div class="cityFlag"><img src="' . W_IMAGES . 'essence/country/' . $arrCity['country_code'] . '.gif" alt="" /></div>';
				$returnStr .= '</a>';
				$returnStr .= '<div class="prices">';
				$returnStr .= '<div class="priceStars"><div class="textStars textStars5"></div><div class="starsIcon"></div><p> ' . Service_Translate::getText('от empty') . ' ' . $objExchange->getSpanPrice($arrCity['min_rate_5'], 'RUB') . '</p></div>';
				$returnStr .= '<div class="priceStars"><div class="textStars textStars4"></div><div class="starsIcon"></div><p> ' . Service_Translate::getText('от empty') . ' ' . $objExchange->getSpanPrice($arrCity['min_rate_4'], 'RUB') . '</p></div>';
				$returnStr .= '<div class="priceStars"><div class="textStars textStars3"></div><div class="starsIcon"></div><p> ' . Service_Translate::getText('от empty') . ' ' . $objExchange->getSpanPrice($arrCity['min_rate_3'], 'RUB') . '</p></div>';
				$returnStr .= '</div>';
				$returnStr .= '<div class="clear"></div>';
				$returnStr .= '</div>';
				$returnStr .= '</li>';
				if ($i == 3) {
					$returnStr .= '<div class="clear"></div>';
					$returnStr .= '</ul>';
					$returnStr .= '<div class="cityLine"></div>';
				}
			}
			else {
				if ($flag) {
					$returnStr .= '<ul class="small-popular-city">';
					$flag = false;
				}
				$returnStr .= '<li>';
				$returnStr .= '<div class="small-poster">';
				$returnStr .= '<a href="' . View_City::getUrl($arrCity)	. '" class="shadow-image poster" style="background-image: url(' . View_Image::makeStaticUrl(W_IMAGES . 'essence/city/' . $arrCity['ID_city'] . '.jpg', 'popular150x97') . ')">';
				$returnStr .= '<div class="cityFlag"><img src="' . W_IMAGES . 'essence/country/' . $arrCity['country_code'] . '.gif" alt="" /></div>';
				$returnStr .= '</a>';
				$returnStr .= '</div>';
				$returnStr .= '<div class="cityName"><a href="' . View_City::getUrl($arrCity) . '">' . View_City::getName($arrCity) . '</a></div>';
				$returnStr .= '<div class="nrHotels">' . $arrCity['nr_hotels'] . ' ' . Service_Function::getDeclination($arrCity['nr_hotels'], 'отель', 'отеля', 'отелей') . '</div>';
				$returnStr .= '</li>';
			}
		}
		$returnStr .= '<div class="clear"></div>';
		$returnStr .= '</ul>';
		$returnStr .= '</div>';
		
		return $returnStr;
	}
	
	public function showCountryAndCity($arrCountries, $arrCities) {
		Service_Debug::setDebug();
		echo '<div id="countryAndCity">';
			
			echo '<div id="countryAndCityTop" class="behavior">';
				echo '<h5>' . Service_Translate::getText('Отели по всему миру') . '</h5>';
				echo '<a class="reservation grayButton button-with-arrow behavior" href="' . View_Base::getLanguageUrl(W_ABSPATH . 'hotels.htm') . '">';
					echo Service_Translate::getText('Все страны и города');
				echo '</a>';
				echo '<div class="clear"></div>';
			echo '</div>';
			echo '<div id="countryAndCityContent" class="behavior"><ul>';
			$i = 0;
			$countryCount = ceil(count($arrCountries))/4;
			foreach ($arrCountries as $key => $arrCountry) {
				if (!($i % $countryCount) && $i) echo '</ul><ul>';
					echo '<li><a href="' . View_Country::getUrl($arrCountry) . '" class="country">' .  View_Country::getName($arrCountry) . '</a>';
					echo '<ul>';
						foreach ($arrCities[$key] as $arrCity)
							echo '<li><a href="' . View_City::getUrl($arrCity) . '">' .  View_City::getName($arrCity) . '</a></li>';
						echo '<li><noindex><a href="' . View_Country::getUrl($arrCountry) . '" rel="nofollow">' . Service_Translate::getText('Все города') . '</a></noindex></li>';
					echo '</ul></li>';
					$i++;
			}
			echo '</ul><div class="clear"></div></div>';
			
		echo '</div>';
	}
	
	public function getCountryAndCity($arrCountries, $arrCities) {
		Service_Debug::setDebug();
		$returnStr = '';
		$returnStr .= '<div id="countryAndCity">';
			
		$returnStr .= '<div id="countryAndCityTop" class="behavior">';
		$returnStr .= '<h5>' . Service_Translate::getText('Отели по всему миру') . '</h5>';
		$returnStr .= '<a class="reservation standardSubmit button-with-arrow behavior" href="' . View_Base::getLanguageUrl(W_ABSPATH . 'hotels.htm') . '">';
		$returnStr .= Service_Translate::getText('Все страны и города');
		$returnStr .= '</a>';
		$returnStr .= '<div class="clear"></div>';
		$returnStr .= '</div>';
		$returnStr .= '<div id="countryAndCityContent" class="behavior"><ul>';
		$i = 0;
		$countryCount = ceil(count($arrCountries))/4;
		foreach ($arrCountries as $key => $arrCountry) {
			if (!($i % $countryCount) && $i) $returnStr .= '</ul><ul>';
			$returnStr .= '<li><a href="' . View_Country::getUrl($arrCountry) . '" class="country">' .  View_Country::getName($arrCountry) . '</a>';
			$returnStr .= '<ul>';
			foreach ($arrCities[$key] as $arrCity)
				$returnStr .= '<li><a href="' . View_City::getUrl($arrCity) . '">' .  View_City::getName($arrCity) . '</a></li>';
			$returnStr .= '<li><noindex><a href="' . View_Country::getUrl($arrCountry) . '" rel="nofollow">' . Service_Translate::getText('Все города') . '</a></noindex></li>';
			$returnStr .= '</ul></li>';
			$i++;
		}
		$returnStr .= '</ul><div class="clear"></div></div>';
			
		$returnStr .= '</div>';
		
		return $returnStr;
	}
	
	/**
	 * Выводим социальные вещи (rss, соц.сети, подписка)
	 */
	public function showSocial() {
		echo '<div class="social">';
			echo '<strong>' . Service_Translate::getText('Следите за проектом и лучшими предложениями Hotels.ru') . '</strong>';
			echo '<form id="subscription-form" action="/" metdhod="POST">';
				echo '<table><tr>';
					echo '<td><input id="subscription-email" type="text" class="inputClass" placeholder="Email" /></td>';
					echo '<td><button type="submit" class="standardSubmit">' . Service_Translate::getText('Подписаться') . '</button></td>';
				echo '</tr></table>';
			echo '</form>';
		echo '</div>';
	}
	
	/**
	 * Показываем социальные кнопки в контактах в подвале
	 */
	public function showSocialInContacts() {
		Service_Debug::setDebug();
		echo '<ul id="socialButtons">';
			echo '<li class="vkontakte"><noindex><a href="http://vk.com/hotels" rel="nofollow"><span class="face"></span><span class="back"></span></a></noindex></li>';
			echo '<li class="facebook"><noindex><a href="http://www.facebook.com/Hotels.ru" rel="nofollow"><span class="face"></span><span class="back"></span></a></noindex></li>';
			echo '<li class="twitter"><noindex><a href="http://twitter.com/#!/HotelsRu" rel="nofollow"><span class="face"></span><span class="back"></span></a></noindex></li>';
		echo '</ul>';
		echo '<div id="social-text">' . Service_Translate::getText('Следите за новостями из социальных сетей') . '</div>';		
	}
	
	/**
	 * Преимущества hotels.ru
	 */
	public function showBenefits() {
		Service_Debug::setDebug();
		$i = -1;
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Бронируйте отели самостоятельно');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Бронируйте отели самостоятельно через нашу систему - без турфирм, в удобное для вас время и в удобном месте, вы сразу видите цены и наличие номеров на выбранные даты.');
		$arrBenefits[$i]['class'] = 'book-youself';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Бронирование без посредников');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Только у нас оплата отелю напрямую - все деньги получает непосредственно выбранный вами отель, все последующие расчеты вы также производите в отеле.');
		$arrBenefits[$i]['class'] = 'without-mediator';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Бронирование без предоплаты');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Без предоплаты - по большинству тарифов вы можете выбрать оплату в отеле при заезде и отель не списывает деньги до проживания.');
		$arrBenefits[$i]['class'] = 'without-prepayment';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Самые низкие цены');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Скидки за онлайн бронирование - мы предлагаем самые низкие цены на проживание, у нас также действуют отельные бонусы и спецтарифы, отельные распродажи.');
		$arrBenefits[$i]['class'] = 'lowest-prices';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Полнота информации');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Изучите отели - у нас подробные описания, фотографии и рейтинги 205 тысяч отелей в 30 тысячах мест и 164 странах мира.');
		$arrBenefits[$i]['class'] = 'information';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Русскоязычный сервис');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('У нас русскоязычный сервис и поддержка через сайт и по телефону в Москве, Санкт-Петербурге и по всей России.');
		$arrBenefits[$i]['class'] = 'russian-service';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Бесплатная отмена бронирования');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Возможность изменить и отменить бронирование в несколько кликов прямо в нашей системе. Вы можете выбирать тарифы с бесплатной отменой бронирования.');
		$arrBenefits[$i]['class'] = 'free-cancelation';
		$arrBenefits[++$i]['title'] = Service_Translate::getText('Мгновенное подтверждение');
		$arrBenefits[$i]['paragraph'] = Service_Translate::getText('Быстро и удобно - мгновенное получение ваучера с подтверждением бронирования и данными проживания.', View_Base::getLanguageUrl(W_ABSPATH . 'reservations.htm'));
		$arrBenefits[$i]['class'] = 'instant-confirmation';		
		/*echo '<div id="benefits" class="gray-block behavior">';
			echo '<h2>' . Service_Translate::getText('Преимущества Hotels.ru') . '</h2>';
			echo '<ul>';
			foreach ($arrBenefits as $arrBenefit) {
				echo '<li class="' . ($i++ % 2 == 0 ? 'clear' : null) . ($preview < $i ? ' hide' : null) . '">';
					echo '<div class="number behavior"><span>' . $i . '</span></div>';
					echo '<div class="benefit-text">';
						echo '<h5>' . $arrBenefit['title'] . '</h5>';
						echo '<p>' . $arrBenefit['paragraph'] . '</p>';
					echo '</div>';
				echo '</li>';
			}
			echo '</ul>';
			echo '<div class="clear"></div>';
			echo '<a href="#" class="show-all show-all-button">' . Service_Translate::getText('Все преимущества') . '</a>';
			echo '<div class="close"></div>';
		echo '</div>';*/
		
		echo '<div id="benefits-tabs" class="behavior">';
			$menuText = '';
			$blockText = '';
			foreach ($arrBenefits as $arrBenefit) {
				$menuText .= '<li><a href="#tab-' . $arrBenefit['class'] . '" title="' . $arrBenefit['title'] . '"><span class="' . $arrBenefit['class'] . '"></span></a></li>';
				$blockText .= '<div id="tab-' . $arrBenefit['class'] . '"><h6>' . $arrBenefit['title'] . '</h6><p>' . $arrBenefit['paragraph'] . '</p></div>';
			}
			echo '<ul>' . $menuText . '</ul>';
			echo $blockText;
		echo '</div>';
	}
	
	/**
	 * Выводит блок "Гостиницы по всему миру"
	 * 
	 */
	public function showAllWorldHotels($arrCities) {
		Service_Debug::setDebug();	
		if (!$arrCities) return false;
		echo '<div id="allWorldHotels">';
			echo '<h2 class="inlineHeader">' . Service_Translate::getText('Гостиницы по всему миру') . '</h2>';
			echo '<div class="citiesList">';
				echo '<ul class="column">';
				$oneColumnAmount = ceil(sizeof($arrCities) / 5);
				$i = 0 ;
				foreach ($arrCities as $arrCity) {
					if($i && $i % $oneColumnAmount == 0) echo '</ul><ul class="column">';
					echo '<li><a href="' . View_City::getUrl($arrCity) . '">';
					 if (in_array($arrCity['country_code'], array('ru', 'ua', 'by', 'lv'))) echo Service_Translate::getText('Гостиницы города', View_City::getName($arrCity, 2));
					 else	echo Service_Translate::getText('Отели города', View_City::getName($arrCity, 2)); 
					echo '</a></li>';
					$i++;
				}
				echo '</ul>';
				echo '<div class="clear"></div>';
			echo '</div>';
			
		echo '</div>';
	}
	/**
	 * Выводит подвал
	 * 
	 */
	public function showBasement($showPrebasement) {
		Service_Debug::setDebug();
		$lang = Service_Translate::getLang();
		echo '<noindex>';
			echo '<div id="footer">';
				echo '<div id="footer-contacts" class="full-border">';
					echo '<div class="links">';
						echo '<a href="' . W_ABSPATH . '" rel="nofollow">Главная</a>';
						echo '<a href="' . W_ABSPATH . 'directions" rel="nofollow">Направления </a>';
						echo '<a href="' . W_ABSPATH . 'orders/add" rel="nofollow">Подать заявку</a>';
						echo '<a href="' . W_ABSPATH . 'profile" rel="nofollow">Личный кабинет</a>';		
						echo '<a href="' . W_ABSPATH . 'contacts.htm" rel="nofollow">Контакты</a>';
						if(SimpleAdministration::isAdmin()) {
								echo '<a href="' . W_ABSPATH . 'orders?option=fast">Грузы</a>';
								echo '<a href="' . W_ABSPATH . 'drivers">Водители</a>';
						}
					echo '</div>';
					echo '<div id="contacts">';
						echo '<span>Телефон: 8-904-602-74-68</span>';
						echo '<span>Адрес: Санкт-Петербург, проспект Культуры, 19к3</span>';
						echo '<span>E-mail: <a href="mailto:szperevozki@gmail.com">szperevozki@gmail.com</a></span>';
					echo '</div>';
				echo '</div>';
				echo '<div id="copyright">';
					echo '&copy 2012 СЗПЕРЕВОЗКИ';
				echo '<div>';
			echo '</div>';
		echo '</noindex>';
		/*
			echo '<ul id="footerContact">';
				echo '<li>';
					if ($lang == 'ru') {
						echo '<div class="сontactSlogan">' . Service_Translate::getText('Бесплатно по России') . '</div>';
						echo '<div class="сontact">8 800 555-09-21</div>';
					}
				echo '</li>';
				echo '<li>';
					echo '<div class="сontactSlogan">' . Service_Translate::getText('Москва') . '</div>';
					echo '<div class="сontact">' . ($lang == 'ru' ? '8' : '+7') . ' 495 505-63-25</div>';
				echo '</li>';
				echo '<li>';
					echo '<div class="сontactSlogan">' . Service_Translate::getText('Санкт-Петербург') . '</div>';
					echo '<div class="сontact">' . ($lang == 'ru' ? '8' : '+7') . ' 812 309-57-60</div>';
				echo '</li>';
				echo '<li>';
					$this->showSocialInContacts();
				echo '</li>';
			echo '</ul>';
			echo '<div class="clear"></div><hr />';
			if (!Service_Function::isMainPage()) echo '<noindex>';
				//вопросы и ответы, о компании, для отелей, каталог гостиниц
				echo '<ul id="footerLink">';
					echo '<li><ul>';
					  echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'faq.htm') . '">' . Service_Translate::getText('Вопросы и ответы') . '</a></li>';	
					echo '</ul></li>';
					echo '<li><ul>';
						echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'about_us.htm') . '">' . Service_Translate::getText('О компании') . '</a></li>';
					echo '</ul></li>';
					echo '<li><ul>';
						echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'offertohotels.htm') . '">' . Service_Translate::getText('Для отелей') . '</a></li>';	
					echo '</ul></li>';
					echo '<li><ul>';
					  echo '<li><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'hotels.htm') . '">' . Service_Translate::getText('Каталог гостиниц') . '</a></li>';
					echo '</ul></li>';
					echo '<li><ul>';
					  echo '<li><a href="javascript:UserVoice.showPopupWidget();" title="">' . Service_Translate::getText('Связаться с нами') . '</a></li>';
					echo '</ul></li>';
				echo '</ul>';
				echo '<div class="clear"></div><hr style="margin-bottom: 23px;" />';
			if (!Service_Function::isMainPage()) echo '</noindex>';
			echo '<div id="copyright">&copy; 2000-2012 Hotels.ru ' . Service_Translate::getText('Все права защищены') . '</div>';
			if (!Service_Function::isMainPage()) echo '<noindex>';
				echo '<div id="payment"><img src="' . W_IMAGES . 'footer/payment.png" alt="" /><span> - ' . Service_Translate::getText('и еще') . ' <a href="' . $this->getLanguageUrl(W_NONE_HTTPS_PATH . 'oplata.htm') . '">' . Service_Translate::getText('5 других способов оплаты') . '</a></span></div>';
			if (!Service_Function::isMainPage()) echo '</noindex>';
			*/
	}
	
	public function errorPage($error) {
		echo '<!DOCTYPE html>';
		echo '<html style="height:100%;">';
			echo '<head>
				<link rel="stylesheet" type="text/css" href="' . W_CSS . 'new_carcass.css?v=3" />
				<link rel="stylesheet" type="text/css" href="' . W_CSS . 'specific/404.css" />
				<link rel="stylesheet" type="text/css" href="' . W_CSS . 'reset.css" />
				<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
				<script type="text/javascript">
					$("#liveSignInForm").live("submit", function(e) {
					$.ajax({  
						type: "POST",  
						url: "/ajax/auth/sign_in",  
						data: {
								loginOrEMail: $("#auth_e_mail").val(),
					  		password: $("#auth_pass").val()
					  	},
						dataType: "json",
						success: function(data) {
							if (data.result == "OK") location.reload(true);
							else alert("' . Service_Translate::getText("Неверный логин или пароль") . '");
							console.log(data);
						}
					});
					return false;		
				});
				</script>
			
				<meta name="robots" content="noindex,nofollow">
			</head>';
			echo '<body style="background:none;height:100%;">';
				echo '<div id="ErrorPageSecond">';
				echo '<div id="blueBand"></div>';
				echo '<div id="errorHeader"><a href="' . View_Base::getLanguageUrl(W_ABSPATH) . '" id="errorLogo"></a></div>';
				echo '<div id="ErrorPageContent">';
					switch ($error) {
						case '404':
							echo '<div id="errorText">';
							echo '<h1>404</h1>';
							echo '<h2>' . Service_Translate::getText('Страницы которую вы ищете, нет') . '</h2>';
							echo '<p>' . Service_Translate::getText('Вернитесь на главную', View_Base::getLanguageUrl(W_ABSPATH)) . '</p>';
							echo '</div>';
							break;
						case '403':
							$objSession = User_Session::instance();
							echo '<div id="errorText">';
								echo '<h2>' . Service_Translate::getText('Доступ запрещен') . '</h2>';
								//if (str_replace(array('http://', DOMAIN . '/'), array('', DOMAIN), W_HOTEL_ADMIN_FULLPATH) == $_SERVER['SERVER_NAME']) { // Если в экстранете
								//	echo '<p>Вам не хватает прав для просмотра данной страницы. Вы можете <a href="' . W_HOTEL_ADMIN_FULLPATH . 'auth/exit/">выйти</a> и войти в систему, указав логин пользователя владеющего соответствующими правами.</p>';
								//}
								//else { // Если не в экстранете
									echo '<p>' . ($objSession->isLoggedIn() ? Service_Translate::getText('Вернитесь на главную', View_Base::getLanguageUrl(W_ABSPATH)) : Service_Translate::getText('Пожалуйста, авторизуйтесь')) . '</p>';
							//	}
							echo '</div>';
							if (!$objSession->isLoggedIn()) {
							echo '<noindex>';
								echo '<div id="account">';

									echo '<div id="authorization" class="accountNearBlock behavior">';
									echo '<div class="firstBorder behavior">';
									echo '<div class="secondBorder behavior">';
									echo '<div class="sideleft">';
									echo '<form action="" id="liveSignInForm">';
									echo '<p>';
									echo '<span>' . Service_Translate::getText('Электронный адрес или номер брони:') . '</span><br />';
									echo '<input type="text" id="auth_e_mail" />';
									echo '</p>';
									echo '<p>';
									echo '<span>' . Service_Translate::getText('Пароль или пин-код бронирования:') . '</span><br />';
									echo '<input type="password" id="auth_pass" />';
									echo '</p>';
									echo '<a href="' . W_NONE_HTTPS_PATH . 'auth/recovery/" class="recoveryLink">' . Service_Translate::getText('Вспомнить пароль') . '</a>';
									echo '<button class="standardSubmit" type="submit">' . Service_Translate::getText('Вход') . '</button>';
									echo '</form>';
									echo '</div>';
									echo '<div class="sideright">';
									echo '<a id="fb" class="standardSubmit" href="#" onclick="FB.login(function(response) {}, {scope: \'email\'});return false;"><img src="' . W_IMAGES . 'none.gif" alt="" /><span>' . Service_Translate::getText('Войти через facebook') . '</span></a>';
									echo '<div style="display:none;">';
									View_Api::facebookInit();
									echo '</div>';
									//echo '<div class="fb-login-button" data-scope="email">Login with Facebook</div>';
									//echo '<a id="vk" class="standardSubmit" href="#" onclick="alert(\'' . Service_Translate::getText('Эта опция временно не поддерживается.') . '\');return false;"><img src="' . W_IMAGES . 'none.gif" alt="" /><span>' . Service_Translate::getText('Войти через vkontakte') . '</span></a>';
									echo '<a class="standardSubmit" href="' . View_Base::getLanguageUrl(W_ABSPATH . 'auth/sign_up') . '"><span>' . Service_Translate::getText('Зарегистрироваться') . '</span></a>';
									echo '</div>';
									echo '</div>';
									echo '</div>';
							
								echo '</div>';
								echo '</div>';
								echo '<div class="clear"></div>';
								echo '</noindex>';
							}
							else {
							}
								break;
					}
					echo '</div>';
				echo '</div>';
			echo '</body>';
		echo '</html>';
	}
	
	
	/**
	 * Выводит баннер группового бронирования
	 * 
	 */
	public function showGroupBookingBanner() {
		Service_Debug::setDebug();
		echo '<div class="bigImg">';
			echo '<a href="' . $this->getLanguageUrl(W_ABSPATH . 'group_form.htm') . '">';
				echo '<img id="groupReserv" src="' . W_IMAGES . 'big/group_reserv.jpg" alt="" />';
			echo '</a>';
		echo '</div>';
	}
	
	/**
	 * Выводит banner topClient
	 * 
	 */
	public function showTopClientBanner() {
		Service_Debug::setDebug();
		echo '<div class="theSimplestBorder alignCenter">';
			echo '<a href="http://www.topclient.ru/" target="_blank">';
				echo '<img id="topClientLogo" src="' . W_IMAGES . 'top_client.png" alt="TopClient" title="TopClient" />';
			echo '</a>';
		echo '</div>';
	}
	

		/**
	 * Выводит баннер группового бронирования
	 * 
	 */
	public function showSocialButtonsBlock() {
		Service_Debug::setDebug();
		echo '<div class="theSimplestBorder alignCenter">';
?>
социальные кнопки
<!-- 
<div id="fb-root" class=" fb_reset"><div style="position: absolute; top: -10000px; height: 0px; width: 0px; "></div></div><script src="http://connect.facebook.net/en_US/all.js#appId=197278243656701&amp;xfbml=1"></script><fb:like href="http://www.hotels.ru" send="true" layout="button_count" width="100" show_faces="false" font="" class=" fb_edge_widget_with_comment fb_iframe_widget"><span><iframe id="f202fbff8" name="f35f864664" scrolling="no" style="border-width: initial; border-color: initial; overflow-x: hidden; overflow-y: hidden; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; height: 20px; width: 150px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " title="Like this content on Facebook." class="fb_ltr" src="http://www.facebook.com/plugins/like.php?api_key=197278243656701&amp;channel_url=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df31683d9dc%26origin%3Dhttp%253A%252F%252Fwww.hotels.ru%252Fff28feea8%26relation%3Dparent.parent%26transport%3Dpostmessage&amp;extended_social_context=false&amp;href=http%3A%2F%2Fwww.hotels.ru&amp;layout=button_count&amp;locale=en_US&amp;node_type=link&amp;sdk=joey&amp;send=true&amp;show_faces=false&amp;width=150"></iframe></span></fb:like>

<div style="padding-left: 25px;">

<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?32"></script>

<script type="text/javascript">
	VK.init({apiId: 2399739, onlyWidgets: true});
</script>
<div id="vk_like" style="height: 22px; width: 180px; position: relative; clear: both; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "><iframe name="fXD39e3e" style="height: 22px; width: 180px; z-index: 150; overflow-x: hidden; overflow-y: hidden; " frameborder="0" src="http://vkontakte.ru/widget_like.php?app=2399739&amp;width=100%&amp;page=0&amp;url=http%3A%2F%2Fwww.hotels.ru%2Fhotels.htm&amp;type=button&amp;verb=0&amp;title=%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%20%D0%B3%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B8%D1%86.%20%D0%91%D1%80%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B3%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B8%D1%86%20%D0%A4%D1%80%D0%B0%D0%BD%D1%86%D0%B8%D0%B8%2C%20%D0%98%D1%82%D0%B0%D0%BB%D0%B8%D0%B8%2C%20%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8%2C%20%D0%98%D1%81%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8%2C%20%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE...&amp;description=%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%20%D0%B3%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B8%D1%86%20%D0%A4%D1%80%D0%B0%D0%BD%D1%86%D0%B8%D0%B8%2C%20%D0%98%D1%82%D0%B0%D0%BB%D0%B8%D0%B8%2C%20%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8%2C%20%D0%98%D1%81%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8%2C%20%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D0%B8.%20%D0%91%D1%80%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B3%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B8%D1%86%20%D0%B2%20%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B5%20%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD.&amp;image=" width="100%" height="22px" scrolling="no" id="vkwidget1"></iframe></div>
<script type="text/javascript">
VK.Widgets.Like("vk_like", {type: "button"});
</script>
</div>
 -->
<?php
		echo '</div>';
	}

		/**
	 * Выводит баннер группового бронирования
	 * 
	 */
	public function showHttpsMessage() {
		Service_Debug::setDebug();
		echo '<div class="theSimplestBorder alignCenter" id="httpsMessage">';
			echo '<b>' . Service_Translate::getText('Hotels.ru заботится о Вашей безопасности') . ':</b> ' . Service_Translate::getText('Данные обрабатываются конфиденциально');
			echo '<div id="thawteseal" style="text-align:center;margin-top:12px;" title="Click to Verify - This site chose Thawte SSL for secure e-commerce and confidential communications.">
<div><script type="text/javascript" src="https://seal.thawte.com/getthawteseal?host_name=www.hotels.ru&amp;size=S&amp;lang=en"></script></div>
</div>';
		echo '</div>';
	}

	/**
	 * Выводит основное меню
	 * 
	 */
	public function showMainPhotoBanner() {
		Service_Debug::setDebug();
		$arrCities = array();
		$arrCities[0]['city_final_name_ru'] = 'Санкт-Петербург';
		$arrCities[0]['city_final_name_en'] = 'Saint-Petersburg';
		$arrCities[0]['text_ru'] = 'Романтические выходные в Санкт-Петербурге. Отели в центре города от 2000 рублей';
		$arrCities[0]['text_en'] = 'Romantic weekend in St. Petersburg. Hotels in the city center from $65';
		$arrCities[0]['country'] = 'russia';
		$arrCities[0]['city'] = 'saint_petersburg';
										 
		$arrCities[1]['city_final_name_ru'] = 'Париж';
		$arrCities[1]['city_final_name_en'] = 'Paris';
		$arrCities[1]['text_ru'] = 'Прогуляться по Парижу... Отели от 1500 рублей';
		$arrCities[1]['text_en'] = 'Take a walk through Paris ... Hotels from $50';
		$arrCities[1]['country'] = 'france';
		$arrCities[1]['city'] = 'paris';
		
		$arrCities[2]['city_final_name_ru'] = 'Москва';
		$arrCities[2]['city_final_name_en'] = 'Moscow';
		$arrCities[2]['text_ru'] = 'Деловая поездка в Москву. Гостиницы от 1900 рублей';
		$arrCities[2]['text_en'] = 'Business trip to Moscow. Hotels from $60';
		$arrCities[2]['country'] = 'russia';
		$arrCities[2]['city'] = 'moscow';
		
		$arrCities[3]['city_final_name_ru'] = 'Лондон';
		$arrCities[3]['city_final_name_en'] = 'London';
		$arrCities[3]['text_ru'] = 'Лучшие отели Лондона по лучшим ценам! Гостиницы от 1600 рублей';
		$arrCities[3]['text_en'] = 'The best hotels in London at the best prices! Hotels from $55';
		$arrCities[3]['country'] = 'united_kingdom';
		$arrCities[3]['city'] = 'london';
		
		$arrCities[4]['city_final_name_ru'] = 'Весь мир';
		$arrCities[4]['city_final_name_en'] = 'All the world';
		$arrCities[4]['text_ru'] = 'Бронирование отелей по всему миру. Ваши новые впечатления - бесценны!';
		$arrCities[4]['text_en'] = 'Book hotels around the world. Your new experience is priceless!';
		
		$language = Service_Translate::getLang();
		$languageUrl = Service_Translate::getLangForUrl();
		$currentNumber = rand(0, sizeof($arrCities) - 1);
		echo '<div id="mainPhotoBanner">';
			$language = Service_Translate::getLang();
			foreach ($arrCities as $i => $arrCity) {
				//onclick="window.location = \'/eng/hotels/russia/moscow/hotels.htm\'"
				if (isset($arrCity['city'])) $url = View_City::getUrl($arrCity);
				else $url = $this->getLanguageUrl(W_ABSPATH . 'hotels.htm');
				echo '<a class="onePhoto" href="' . $url . '" id="b' . ($i + 1) . '" style="position:absolute;' . ($currentNumber != $i ? 'top:-2000px;' : null) . '" ' . ($currentNumber == $i ? ' current="1" ' : null) . '>';
				echo '<div class="text">';
					//echo '<h2 class="header">' . Service_Translate::getText('Гостиницы города', View_City::getName($arrCity, 2)) . '</h2>';
					//echo Service_Translate::getText('Забронировать гостиницу в городе по сниженной цене', View_City::getName($arrCity, 6));
					echo '<h2 class="header headerMini">' . $arrCity['text_' . $language] . '</h2>';
				echo '</div>';
				echo '</a>';
			}
			echo '<div id="arrowsBlock" style="display: none;">';
			echo '<div class="arrowIcon" id="arrowPrev"></div>';
			echo '<div class="arrowIcon arrowPause" id="pausePlay"></div>';
			echo '<div class="arrowIcon" id="arrowNext"></div>';
		 echo '</div>';
		echo '</div>';
	}
	
	/**
	 * Выводит основное меню
	 * 
	 */
	public function showMainMenu($arrMenu) {
		Service_Debug::setDebug();
		$arrMenu = array();
		$arrMenu[0]['name'] = Service_Translate::getText('Бронирование отелей');
		$arrMenu[0]['url'] = $this->getLanguageUrl(W_NONE_HTTPS_PATH);
		$arrMenu[0]['is_selected'] = 1;
		$arrMenu[1]['name'] = Service_Translate::getText('Как забронировать');
		$arrMenu[1]['url'] = $this->getLanguageUrl(W_NONE_HTTPS_PATH . 'reservations.htm');
		//$arrMenu[2]['name'] = Service_Translate::getText('Как оплатить');
		//$arrMenu[2]['url'] = $this->getLanguageUrl(W_NONE_HTTPS_PATH . 'oplata.htm');
		$arrMenu[3]['name'] = Service_Translate::getText('Почему hotels.ru');
		$arrMenu[3]['url'] = $this->getLanguageUrl(W_NONE_HTTPS_PATH . 'best_reservations.htm');
		$arrMenu[4]['name'] = Service_Translate::getText('Контакты');
		$arrMenu[4]['url'] = $this->getLanguageUrl(W_NONE_HTTPS_PATH . 'contacts.htm');
		if (!$arrMenu) return false;
		echo '<div id="langChoose">';
			echo '<p id="langChooseIn">';
				echo Service_Translate::getText('Язык') . ': ';
				echo '<span>' . strtoupper(Service_Translate::getLang()) . '</span> ';
				echo '<a id="langLink" href="' . self::getLanguageUrl(str_replace(array('rus/', 'eng/'), '', $_SERVER['REQUEST_URI']), false, true)	. '">' . (Service_Translate::getLang() == 'ru' ? 'EN' : 'RU') . '</a>';
			echo '</p>';
		echo '</div>';
		echo '<nav>';
		echo '<ul id="mainMenu">';
		foreach ($arrMenu as $key => $arrLink) {
			if ($arrLink['url'] == $_SERVER['REQUEST_URI']) {
				unset($arrMenu[0]['is_selected']);
				$arrMenu[$key]['is_selected'] = 1;
			}
		}
		foreach ($arrMenu as $arrLink) {
			echo '<li class="mMenu' . (isset($arrLink['is_selected']) && $arrLink['is_selected'] ? ' selected' : '') . '">';
				echo '<a class="mMenuL" href="' .	$arrLink['url'] . '">' . $arrLink['name'] . '</a>';
			echo '</li>';
		}
		echo '</ul>';
		
		//echo $_SERVER['REQUEST_URI']; 
		echo '</nav>';
	}
	
	/**
	 * Метод выводит хлебные крошки
	 *
	 */
	public function showCrumbs($arrCrumbs, $ifLastCrumbIsLink) {
		Service_Debug::setDebug();
		$crumbsSize = sizeof($arrCrumbs);
		if ($crumbsSize) echo '<div id="crumbs">';
		for ( $i = 0; $i < $crumbsSize; $i++) {
			$langUrl = substr($arrCrumbs[$i]['url'], strlen(W_ABSPATH), 3);
			if ($langUrl != 'eng' && $langUrl != 'rus') {
				$arrCrumbs[$i]['url'] = $this->getLanguageUrl($arrCrumbs[$i]['url']); // Преобразовываем url с учетом языка
			}
			if (!empty($arrCrumbs[$i]['url']) && !(!$ifLastCrumbIsLink && $i == ($crumbsSize - 1)) && $_SERVER['REQUEST_URI'] != $arrCrumbs[$i]['url'] && (!isset($arrCrumbs[$i]['no_link_if_last']) || !$arrCrumbs[$i]['no_link_if_last'])) {
				echo '<a class="crumb" href="' . $arrCrumbs[$i]['url'] . '">';
			}
			else echo '<noindex><span class="crumb">';
			echo $arrCrumbs[$i]['name'];
			if (!empty($arrCrumbs[$i]['url']) && !(!$ifLastCrumbIsLink && $i == ($crumbsSize - 1)) && $_SERVER['REQUEST_URI'] != $arrCrumbs[$i]['url'] && (!isset($arrCrumbs[$i]['no_link_if_last']) || !$arrCrumbs[$i]['no_link_if_last'])) {
				echo '</a>';
			}
			if ($i < $crumbsSize - 1) echo ' > ';
			else echo '</span></noindex>';
		}
		if ($crumbsSize) echo '</div>';
	}

	
	/**
	 * Метод выводит хлебные крошки
	 *
	 */
	public function showBackLink($url, $text = null) {
		Service_Debug::setDebug();
		echo '<p class="backLink">';
			echo '<a href="' . $url . '">' . (!empty($text) ? $text : Service_Translate::getText('Назад')) . '</a>';
		echo '</p>';
	}
	
	/**
	 * Метод выводит открывающую часть блока в рамке с заголовком
	 *
	 */
	public function showOpenSimplestBorderBlock($header, $arrSettings = array()) {
		Service_Debug::setDebug();
		echo $this->getOpenSimplestBorderBlock($header, $arrSettings);
	}
	/**
	 * Метод возвращает открывающую часть блока в рамке с заголовком
	 *
	 */
	public function getOpenSimplestBorderBlock($header, $arrSettings = array()) {
		Service_Debug::setDebug();
		$text = '';
		if (!empty($arrSettings['inlineHeader'])) $text .= '</div>';
		else $text .= '<div class="theSimplestBorderWithHead' . (!empty($arrSettings['class']) ? ' ' . $arrSettings['class'] : null) . '"' . (!empty($arrSettings['id']) ? ' id="' . $arrSettings['id'] . '"' : null) . '>';
		$text .= '<h3>' . $header . '</h3>';
		$text .= '<div class="blockContent' . ((!isset($arrSettings['alignCenter']) || $arrSettings['alignCenter']) ? ' alignCenter' : null) . '">';
		return $text;
	}
	
	
	/**
	 * Метод выводит закрывающую часть блока в рамке с заголовком
	 *
	 */
	public function showCloseSimplestBorderBlock() {
		Service_Debug::setDebug();
		echo $this->getCloseSimplestBorderBlock();
	}
	/**
	 * Метод возвращает закрывающую часть блока в рамке с заголовком
	 *
	 */
	public function getCloseSimplestBorderBlock() {
		Service_Debug::setDebug();
		$text = '</div></div>';
		return $text;
	}


	/**
	 * Выводит форму поиска отелей и отзыв
	 * 
	 * @param Object $objEssence - Объект для заполнения формы
	 * @param array $arrEssenceNames - Названия для заполнения формы 
	 * @param array $hotelsAmount - кол-во отелей
	 */
	public function showHotelSearch($objEssence, array $arrEssenceNames, array $hotelsAmount = array()) {
		Service_Debug::setDebug();
		$language = Service_Translate::getLang();
		echo '<div id="hotelReservations">';
			echo '<h1>' . Service_Translate::getText('Бронирование отелей по всему миру без предоплаты и комиссии!') . '</h1>';
			$this->showSearchForm($objEssence, $arrEssenceNames, true);
			//$this->showVideoBlock();
			$this->showRightInfo($hotelsAmount);
			echo '<div class="clear"></div>';
		echo '</div>'; 	
	}
	
	
	public function showMainInfo($arrReview) {
		echo '<div class="main-info">';
			echo '<div class="info-review behavior">';
				echo '<h3>' . Service_Translate::getText('Что о нас говорят?') . '</h3>';
				$this->showReview($arrReview);
			echo '</div>';
			echo '<div class="info-benefits">';
				echo '<h3>' . Service_Translate::getText('Почему нас выбирают?') . '</h3>';
				$this->showBenefits();
			echo '</div>';
			echo '<div class="clear"></div>';
		echo '</div>';
	}
	
	/**
	 * Выводим блок с отзывом человека
	 * @param array - $arrReview - массив с отзывом
	 */
	public function showReview($arrReview) {
		echo '<div id="review" class="review gray-block behavior">';
			echo '<div class="sideleft">';
				echo '<img class="photo" src="' . W_IMAGES . 'people/' . $arrReview['photo'] . '.jpg">';
				echo '<div class="name">' . $arrReview['name'] . '</div>';
				echo '<div class="gray-text">' . $arrReview['activities'] . '</div>';
			echo '</div>';
			echo '<div class="sideright">';
				echo '<p class="text">' . Service_Function::utf8_string_with_limit($arrReview['text'], 240, true) . '</p>';
				echo '<a href="#" class="show-all show-all-button">' . Service_Translate::getText('Еще отзывы') . '</a>';
			echo '</div>';
			echo '<div class="arrow"></div>';
		echo '</div>';
	}
	
	/**
	 * Метод выводит блок с видео о сайте
	 */
	public function showVideoBlock() {
		echo '<div class="video behavior">';
			echo '<h5>Как работает Hotels.ru?</h5>';
			echo '<p class="gray-text">В видео вы найдете исчерпывающие ответы о бронировании</p>';
			echo '<img src="' . W_IMAGES . 'index/video.png" />';
			echo '<hr />';
			echo '<a href="#">';
				echo '<img src="' . W_IMAGES . 'icons/mobile.png" />';
				echo '<span>Мобильная версия сайта hotels.ru</span>';
			echo '</a>';
		echo '</div>';
	}
	
	/**
	 * Метод форму и информацией о сайте, правее формы поиска
	 * @param $hotelsAmount - кол-во отелей
	 */
	public function showRightInfo($hotelsAmount) {
		echo '<div class="right-info behavior">';
			echo '<ul>';
				echo '<li>';
					echo '<h3 class="big">' . Service_Translate::getText('Количество отелей с числом', $hotelsAmount['all'], Service_Translate::getText(Service_Function::getDeclination($hotelsAmount['all'], 'отель', 'отеля', 'отелей'))) . '</h3>';
					echo '<p>' . Service_Translate::getText('Отели по всему миру с удобной фильтрацией') . '</p>';
				echo '</li>';
				echo '<li>';
					echo '<h3>' . Service_Translate::getText('Оплата в отеле при заезде') . '</h3>';
					echo '<p>' . Service_Translate::getText('Платите после проживания') . '</p>';
				echo '</li>';
				echo '<li class="last-child">';
					echo '<h3>' . Service_Translate::getText('Бронирование без кредитной карты') . '</h3>';
					echo '<p>' . Service_Translate::getText('no_cc отелей' , $hotelsAmount['cc'], Service_Translate::getText(Service_Function::getDeclination($hotelsAmount['cc'], 'отель', 'отелей', 'отелей'))) . '</p>';
				echo '</li>';
			echo '</ul>';
			echo '<div class="info-link"><a href="' . View_Base::getLanguageUrl(W_ABSPATH . 'reservations.htm') . '">' . Service_Translate::getText('Как забронировать?') . '</a></div>';
		echo '</div>';
	}
	
	/**
	 * Выводим блок с отзывами
	 * 
	 * @param array $arrReviews - Массив с отывами
	 */
	public function showAllRewiews($arrReviews) {
		echo '<div id="reviews">';
			echo '<div class="slider review-slider">';
				echo '<div class="arrow left"></div>';
				echo '<div class="arrow right"></div>';
				echo '<div style="overflow:hidden;position:relative;"><table><tr>';
					foreach ($arrReviews as $arrReview) {
						echo '<td class="review">';
							echo '<div class="review-info">';
								echo '<img class="photo" src="' . W_IMAGES . 'people/' . $arrReview['photo'] . '.jpg" width="72px" height="72px">';
								echo '<div class="people-info">';
								echo '<div class="name">' . $arrReview['name'] . '</div>';
								echo '<div class="activities">' . $arrReview['activities'] . '</div>';
							echo '</div>';
							echo '<p class="text">' . $arrReview['text'] . '</p>';
							//echo '<div class="popupBox">' . $arrReview['text'] . '</div>';
						echo '</td>';
					}
				echo '</tr></table></div>';
			echo '</div>';
			echo '<div class="close"></div>';
		echo '</div>';
//	echo '<img src="' . W_IMAGES . '/index/reviews.png">';
	}
	
	/**
	 * Выводим блок с формой поиска
	 * 
	 * @param Object $objEssence - Сущность для заполнения формы
	 * @param array $arrEssenceNames - Названия для заполнения формы
	 * @param bool $fullForm (true - полная форма поиска, false - без текстового поля для ввода города) 
	 * @param int $hotelTypeId - Тип отелей
	 * @param int $stars - Кол-во звезд
	 */
	public function showSearchForm($objEssence, array $arrEssenceNames, $fullForm = false, $hotelTypeId = null, $stars = null) {
		Service_Debug::setDebug();
		$dateArr = Service_Escape::requestDataStringRegExp('date_arr', '/^([0-2]\d|3[01])\/(0\d|1[012])\/(\d{4})$/', 'COOKIE');
		$dateDep = Service_Escape::requestDataStringRegExp('date_dep', '/^([0-2]\d|3[01])\/(0\d|1[012])\/(\d{4})$/', 'COOKIE');
		if (!$dateArr || !$dateDep || Service_Date::changeDateFormat($dateArr, 'd/m/Y') < Service_Date::changeDateFormat(date('d/m/Y'), 'd/m/Y')) {
			$dateArr = date('d/m/Y');
			$dateDep = date('d/m/Y', time() + Service_Date::$timestampOneDayInterval);
		}
		if ($objEssence->id) $objViewEssence = Service_Essence::getViewObjByID($objEssence->tableName);
		if (!$fullForm) echo '<noindex>';
			echo '<div id="searchForm" class="search-form-big behavior' . (isset($_GET['shadow']) ? ' shadow' : null) . '">';
				if (!$fullForm) {
					echo '<div class="search-form-header behavior">';
						echo '<h2 class="city-search-label">Показать доступные отели в ' . $objViewEssence->getName($arrEssenceNames, 6) . '</h2>';
					echo '</div>';
				} 
				echo '<form action="' . View_Base::getLanguageUrl(W_ABSPATH . 'hotelsearch/' . ($hotelTypeId ? '#hotelTypes[]=' . $hotelTypeId : '') . ($stars ? '#stars[0]=' . $stars . '&stars[1]=' . $stars: '') ) . '" method="GET" onsubmit="return search.validateSearch(this);" >';
					if ($fullForm) {				
						echo '<b>' . Service_Translate::getText('Место/название отеля') . ':</b>';	
						echo '<input type="text" id="city" class="search-city-input search inputClass suggest" placeholder="' . Service_Translate::getText('Введите город или отель') . '" value="' . ($objEssence->id ? $objViewEssence->getName($arrEssenceNames, 1, null, true) . ((get_class($objEssence) == 'Country') ? '' : ', ' . View_Country::getName($arrEssenceNames)) : '') . '" />';
						echo '<p class="example-label">' . Service_Translate::getText('Например') . ', <a class="example" data-essence-name="city" data-essence-id="-2996338" data-essence-url="" href="#">' .	Service_Translate::getText('Санкт-Петербург') . '</a></p>';
					}
					else {
						
					}
					echo '<p class="date-label"><b>' .	Service_Translate::getText('Дата заезда / отъезда') . ':</b></p>';
					echo '<input type="text" id="calendarText" readonly class="calendar-text inputClass" value="' . ($dateArr && $dateDep ? Service_Date::getRusDate($dateArr) . ' - ' . Service_Date::getRusDate($dateDep) : '') . '" />';
					//echo '<img src="' . W_IMAGES . 'icons/cal_w.png" class="calendar-ico" alt="" />';
					echo '<input id="date_arr" class="date_arr" name="date_arr" type="hidden" value="' . $dateArr . '" />';
					echo '<input id="date_dep" class="date_dep" name="date_dep" type="hidden" value="' . $dateDep . '" />';
					if (SimpleAdministration::isAdmin()) echo 'Expedia: <input type="checkbox" name="exp" />';
					echo '<table id="searchParameters">';
						echo '<tr>';
							echo '<th colspan="2"><b>' . Service_Translate::getText('Номера') . ':</b></th>';
							echo '<th colspan="2"><b>' . Service_Translate::getText('Взрослых') . ':</b></th>';
							echo '<th colspan="3"><b>' . Service_Translate::getText('Детей') . ':</b></th>';
							echo '<td rowspan="2" width="211px"><div class="greenBorder behavior">';
								echo '<button type="submit">' . Service_Translate::getText('Найти отели') . '</button>';
								echo '<input type="hidden" id="essenceIdHidden" name="essenceId" value="' . ($objEssence->id ? $objEssence->id : '') . '" />';
								echo '<input type="hidden" id="essenceNameHidden" name="essenceName" value="' . ($objEssence->tableName ? $objEssence->tableName : '') . '" />';
								echo '<input type="hidden" id="essenceUrlHidden" value="' . ($objEssence->tableName == 'hotel' ? $objEssence->getField('country_url') . '/' . $objEssence->getField('city_url') . '/' . $objEssence->getField('hotel_url') : '') . '" />';							
							echo '</div></td>';
						echo '</tr>';
						echo '<tr>';
							echo '<td width="65px">';
								$objSelect = new Form_Select(array('class' => 'beautySelect mainSelect', 'optionsArray' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10), 'defaultValue' => 1, 'value' => Service_Escape::requestDataString('rooms', 'COOKIE')), 'rooms', true);
							echo '</td>';
							echo '<td>&nbsp;</td>';
							echo '<td width="65px">';
								$objSelect = new Form_Select(array('class' => 'beautySelect mainSelect', 'optionsArray' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10), 'defaultValue' => 2, 'value' => Service_Escape::requestDataString('adult', 'COOKIE')), 'adult', true);
							echo '</td>';
							echo '<td>&nbsp;</td>';
							echo '<td width="65px">';
								$objSelect = new Form_Select(array('class' => 'beautySelect mainSelect', 'optionsArray' => array(0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6), 'defaultValue' => 0, 'value' => Service_Escape::requestDataString('children', 'COOKIE')), 'children', true);
							echo '</td>';
							echo '<td>&nbsp;</td>';
							echo '<td>&nbsp;</td>';
						echo '</tr>';
					echo '</table>';
				echo '</form>';
			echo '</div>';
		if (!$fullForm) echo '</noindex>';
	}
		
	public function showBookForm(Booking $objBooking, BaseHotel $objHotel, $arrBookingInfo, $arrBlockQty, $arrChildrenPolicy, $arrCountries, $arrCreditCards) {
		Service_Debug::setDebug();
		$arrBlocks = $arrBookingInfo['block'];
		$language = Service_Translate::getLang();
		$objExchange = Service_Exchange::instance();
		$arrExUssr = array('ru', 'ua', 'by');
		$arrRoomIds = array();
		$fullPrice = 0;
		$allBlockQty = 0;
		foreach ($arrBlockQty as $blockId => $blockQty) {
			$arrRoomIds[] = intval(substr($blockId, 0, strpos($blockId, "_")));
			$fullPrice += $arrBlocks[$blockId]['prices'][$blockQty - 1];
			$allBlockQty += $blockQty;
		}
		$arrRates = $objExchange->getRates();
		$hotelCurency	= $objHotel->getField('currency_code');			
		$priceInEuro = $objExchange->getShortPrice($fullPrice, $hotelCurency) / $arrRates[$objExchange->getCurrency()] * $arrRates['EUR'];
		
		$isOtherAvailable = $language == 'ru' && $priceInEuro >= 100 && (in_array($objHotel->getField('country_code'), $arrExUssr) || $objHotel->getField('is_filled'));
						
		$objForm = new Form_ViewForm(array(
			'errorIfExists' => true, 
			'viewFormType' => 'div',
		  'showAfterNameSymbols' => false,
			'id' => 'hotelBookForm', 
			'leftWidth' => 220,
		), $objBooking);		
		echo '<div id="bookingContent" data-no-cc="' . $objHotel->getField('no_cc') . '">';
			$objForm->show(true);
				$tabIndex = $this->_showBookingFormStep1($objForm, $objBooking, $objHotel, $arrBookingInfo, $arrBlockQty, $arrChildrenPolicy, $arrCountries);
				if (!$objHotel->getField('no_cc')) $this->_showBookingFormStep2($objForm, $objBooking, $objHotel, $arrCountries, $arrCreditCards, $isOtherAvailable, $tabIndex, $arrBookingInfo, $arrBlockQty);
				else {
					echo '<input type="hidden" class="Booking_payment_type" value="noCC" name="Booking[payment_type]" />';
				}
				$this->_showBookingFormEndBlock($objForm, $objHotel);
			$objForm->close(true);
		echo '</div>';		 
	}
		
	/**
	 * Выводим первый шаг бронирования 
	 * 
	 * @param Form_ViewForm $objForm - Форма бронирования
	 * @param Booking $objBooking - Данные бронирования
	 * @param BaseHotel $objHotel - Отель
	 * @param array $arrBookingInfo - Данные о доступных номерах
	 * @param array $arrBlockQty - Выбранные пользователем номера и их кол-во
	 * @param array $arrChildrenPolicy - Инфо по детям
	 * @param array $arrCountries - Страны
	 * 
	 * @return int - Последний 
	 */
	protected function _showBookingFormStep1(Form_ViewForm $objForm, Booking $objBooking, BaseHotel $objHotel, array $arrBookingInfo, array $arrBlockQty, array $arrChildrenPolicy, array $arrCountries) {
		Service_Debug::setDebug();
		$arrBlocks = $arrBookingInfo['block'];
		$language = Service_Translate::getLang();
		$objExchange = Service_Exchange::instance();
		$days = Service_Date::dateDiff(Service_Date::changeDateFormat($objBooking->getField('date_arr'), 'd/m/Y'), Service_Date::changeDateFormat($objBooking->getField('date_dep'), 'd/m/Y'), 'd', 1);
		
	 	echo '<div id="bookingStep1">';
			echo '<h2>' . Service_Translate::getText('Ваши данные') . '</h2>';
			echo '<ul class="yourDate">';
				echo '<li class="marginRight">';
					$objForm->textField(array('class' => 'vRequired vName beautyText', 'maxlength' => 128, 'text' => Service_Translate::getText('Имя'), 'tabindex' => 1, 'required' => 1), 'booker_first_name');
				echo '</li>';
				echo '<li>';
					$objForm->textField(array('class' => 'vRequired vName beautyText', 'maxlength' => 128, 'text' => Service_Translate::getText('Фамилия'), 'tabindex' => 2, 'required' => 1), 'booker_last_name');
				echo '</li>';
				echo '<li class="marginRight">';
					$objForm->textField(array('class' => 'vRequired vEMail beautyText', 'maxlength' => 128, 'text' => 'E-Mail', 'tabindex' => 3, 'required' => 1), 'e_mail');
				echo '</li>';
				echo '<li>';
					$objForm->textField(array('class' => 'vRequired vPhone beautyText', 'maxlength' => 128, 'text' => Service_Translate::getText('Телефон'), 'tabindex' => 4, 'required' => 1), 'home_phone');
				echo '</li>';
			echo '</ul>';
			if ($objHotel->getField('no_cc')) $this->_showBookingFormStep30($objForm, $objHotel, $arrCountries, 5, false);
			// Выводим номера
			echo '<div id="yourNumber">';
				echo '<ul>';
				$objViewHotel = new View_Hotel();
				$k = 0;
				$tabIndex = 13;
				foreach ($arrBlockQty as $blockId => $blockQty) { // Проходим по номерам
					for ($i = 0; $i < $blockQty; $i++) { // Проходим по кол-ву номеров
						echo '<li data-number="' . $k . '">';
							echo '<div class="numberInfo">';
								echo '<div class="numberName">' . $arrBlocks[$blockId]['name'] . '</div>';
								if (isset($arrBookingInfo['block'][$blockId]['cancellation'])) echo '<div class="bookingCancel">' . $arrBookingInfo['block'][$blockId]['cancellation'] . '</div>';
							echo '</div>';
							echo '<div class="numberTerms popupTrigger" data-block-id="' . $blockId . '"><a href="#" onclick="return !1;">' . Service_Translate::getText('Информация о номере') . '</a></div>';
							echo '<div id="roomTermsText' . $blockId . $k . '" class="closeBookingDialog popupBox" style="display:none;">';
								echo $arrBookingInfo['block'][$blockId]['text'];
							echo '</div>';
							echo '<div class="clear"></div>';
							echo '<table>';
								echo '<tr>';
									echo '<th>' . Service_Translate::getText('Бронирование на гостя') . '</th>';
									echo '<th>' . Service_Translate::getText('Курение') . '</th>';
								echo '</tr>';
								echo '<tr>';
									echo '<td>';
										$objForm->textField(array('class' => 'vRequired vFullName beautyText', 'help' => Service_Translate::getText('Укажите имя и фамилию на кого будет забронирован номер'), 'placeholder' => Service_Translate::getText('Имя') . ' ' . Service_Translate::getText('Фамилия'), 'maxlength' => 128, 'required' => 1, 'tabindex' => $tabIndex++, 'modelNames' => array('Booking', 'Room', $k)), 'guest_name');
									echo '</td>';
									echo '<td>';
										$objForm->selectField(array('class' => 'standardSelect beautySelect mainSelect' ,'optionsArray' => array(1 => Service_Translate::getText('Нет'), 2 => Service_Translate::getText('Да')), 'tabindex' => $tabIndex++, 'modelNames' => array('Booking', 'Room', $k)), 'smoking', true);
									echo '</td>';
								echo '</tr>';
								// Выводим галочки для детей
								if ($objBooking->getField('children')) {
									$m = 0;
									// Существующие кровати
									foreach ($arrChildrenPolicy['existing'] as $arrExistingBed) {												
										echo '<tr>';
											echo '<td colspan="2">';
												if (isset($arrExistingBed['percent'])) $blockPrice = $arrBlocks[$blockId]['prices'][0] * $arrExistingBed['percent'] / 100;
												elseif (isset($arrExistingBed['price'])) $blockPrice = $arrExistingBed['price'] * $days;
												else $blockPrice = 0;
												$label = Service_Translate::getText('Размещение ребенка') . ' ' . ($arrExistingBed['from'] ? Service_Translate::getText('от') . ' ' . $arrExistingBed['from'] . ' ' . Service_Translate::getText('лет') . ' ' : '') . ($arrExistingBed['to'] == 999 ? '' : ' ' . Service_Translate::getText('до') . ' ' . $arrExistingBed['to'] . ' ' . Service_Translate::getText('лет')) . ' ' . Service_Translate::getText('на имеющихся кроватях') . ($blockPrice ? ' ' . Service_Translate::getText('стоит') . ': ' . $objExchange->getSpanPrice($blockPrice , $arrBlocks[$blockId]['currency']) : ' (' . Service_Translate::getText('бесплатно') . ')');
												$objForm->checkbox(array('class' => 'children-beds', 'tabindex' => $tabIndex++, 'label' => $label ,'modelNames' => array('Booking', 'Room', $k, 'children', $m++, $arrExistingBed['from'] . '_' . $arrExistingBed['to'] . '_existing')), $blockPrice);
											echo '</td>';
										echo '</tr>';
									}
									// Детские кроватки
									if (!empty($arrChildrenPolicy['cots']) && isset($arrChildrenPolicy['cots']['from']) && isset($arrChildrenPolicy['cots']['to'])) {
										$arrCot = $arrChildrenPolicy['cots'];
										echo '<tr>';
											echo '<td colspan="2">';
												if (isset($arrCot['percent'])) $blockPrice = $arrBlocks[$blockId]['prices'][0] * $arrCot['percent'] / 100;
												elseif (isset($arrCot['price'])) $blockPrice = $arrCot['price'] * $days;
												else $blockPrice = 0;
												$label = Service_Translate::getText('Детская кроватка для ребенка') . ' ' . ($arrCot['from'] ? Service_Translate::getText('от') . ' ' . $arrCot['from'] . ' ' . Service_Translate::getText('лет') . ' ' : '') . ($arrCot['to'] == 999 ? '' : ' ' . Service_Translate::getText('до') . ' ' . $arrCot['to'] . ' ' . Service_Translate::getText('лет') . ' ') . ($blockPrice ? Service_Translate::getText('стоит') . ': ' . $objExchange->getSpanPrice($blockPrice , $arrBlocks[$blockId]['currency']) : '(' . Service_Translate::getText('бесплатно') . ')');
												$objForm->checkbox(array('class' => 'children-beds', 'tabindex' => $tabIndex++, 'label' => $label ,'modelNames' => array('Booking', 'Room', $k, 'children', $m++, $arrCot['from'] . '_' . $arrCot['to'] . '_cot')), $blockPrice);
											echo '</td>';
										echo '</tr>';		
									}
									// Дополнительные кровати					
									foreach ($arrChildrenPolicy['extra'] as $arrExtraBed) {												
										echo '<tr>';
											echo '<td colspan="2">';
												if (isset($arrExtraBed['percent'])) $blockPrice = $arrBlocks[$blockId]['prices'][0] * $arrExtraBed['percent'] / 100;
												elseif (isset($arrExtraBed['price'])) $blockPrice = $arrExtraBed['price'] * $days;
												else $blockPrice = 0;
												$label = Service_Translate::getText('Дополнительная кровать для ребенка') . ' ' . ($arrExtraBed['from'] ? Service_Translate::getText('от') . ' ' . $arrExtraBed['from'] . ' ' . Service_Translate::getText('лет') . ' ' : '') . ($arrExtraBed['to'] == 999 ? '' : ' ' . Service_Translate::getText('до') . ' ' . $arrExtraBed['to'] . ' ' . Service_Translate::getText('лет') . ' ') . ($blockPrice ? Service_Translate::getText('стоит') . ': ' . $objExchange->getSpanPrice($blockPrice , $arrBlocks[$blockId]['currency']) : '(' . Service_Translate::getText('бесплатно') . ')');
												$objForm->checkbox(array('class' => 'children-beds', 'tabindex' => $tabIndex++, 'label' => $label,'modelNames' => array('Booking', 'Room', $k, 'children', $m++, $arrExtraBed['from'] . '_' . $arrExtraBed['to'] . '_extra')), $blockPrice);
											echo '</td>';
										echo '</tr>';
									}
								}
							echo '</table>';
							// Скрытые поля с инфой по номеру
							$objForm->hiddenField(array('value' => $blockId, 'modelNames' => array('Booking', 'Room', $k)), 'ID_block');
							$objForm->hiddenField(array('value' => $arrBlocks[$blockId]['guest_qty'], 'modelNames' => array('Booking', 'Room', $k)), 'guest_qty');
							$objForm->hiddenField(array('value' => ($arrBlocks[$blockId]['prices'][$i] - (isset($arrBlocks[$blockId]['prices'][$i - 1]) ? $arrBlocks[$blockId]['prices'][$i - 1] : 0)), 'modelNames' => array('Booking', 'Room', $k)), 'price');
							$objForm->hiddenField(array('value' => $arrBlocks[$blockId]['currency'], 'modelNames' => array('Booking', 'Room', $k)), 'currency');
							$objForm->hiddenField(array('value' => $arrBlocks[$blockId]['bb'], 'modelNames' => array('Booking', 'Room', $k)), 'bb');
							$objForm->hiddenField(array('value' => $arrBlocks[$blockId]['free'], 'modelNames' => array('Booking', 'Room', $k)), 'free');							
							$objForm->hiddenField(array('value' => $arrBlocks[$blockId]['dr'], 'modelNames' => array('Booking', 'Room', $k)), 'dr');							
						echo '</li>';
						$k++;							
					}
				}
				echo '</ul>';
			echo '</div>';
			// Выводим поле для комментария
			echo '<div class="addWishes">';
				echo '<a href="#" onclick="$(\'#addComments\').show(500);$(this).hide(); return !1;">' . Service_Translate::getText('Добавить пожелания') . '</a>';
			echo '</div>';
			echo '<div id="addComments" style="display:none;">';
			echo '<p class="fieldHeader">' . Service_Translate::getText('Комментарий') . '<br /><span class="help">' . Service_Translate::getText('Заполнять на языке страны отеля или на английском') . '</span></p>';
			 	$objForm->textareaField(array('class' => 'beautyTextarea'), 'comment');
			echo '</div>';
			
			if (!$objHotel->getField('no_cc')) {
				$objForm->submitButton(array('class' => 'endStep', 'value' => Service_Translate::getText('Отправить'), 'tabindex' => $tabIndex++), 'further', true);
				echo '<p class="underField">' . Service_Translate::getText('Без комиссии') . '</p>';
			}
		echo '</div>';		
		return $tabIndex;
	}
	
	/**
	 * Выводим второй шаг бронирования 
	 * 
	 * @param Form_ViewForm $objForm - Форма бронирования
	 * @param Booking $objBooking - Данные бронирования
	 * @param BaseHotel $objHotel - Отель
	 * @param array $arrBookingInfo - Данные о доступных номерах
	 * @param array $arrCountries - Страны
	 * @param array $arrCreditCards - Кредитные карты
	 * @param bool $isOtherAvailable - Доступны ли другие виды оплаты
	 * @param int $tabIndex - Значение tabindex
	 */
	protected function _showBookingFormStep2(Form_ViewForm $objForm, Booking $objBooking, BaseHotel $objHotel, array $arrCountries, array $arrCreditCards, $isOtherAvailable, $tabIndex, $arrBookingInfo, $arrBlockQty) {
		Service_Debug::setDebug();
		$language = Service_Translate::getLang();
		$objExchange = Service_Exchange::instance();
		$days = Service_Date::dateDiff(Service_Date::changeDateFormat($objBooking->getField('date_arr'), 'd/m/Y'), Service_Date::changeDateFormat($objBooking->getField('date_dep'), 'd/m/Y'), 'd', 1);		
		echo '<div id="bookingStep2">';
			// Шаг между 1 и 2 (показываем в первом если без кредитки, в противном случае на втором)
			$this->_showBookingFormStep30($objForm, $objHotel, $arrCountries, $tabIndex);

			echo '<div class="choosePaymentType">';
				echo '<h3>' . Service_Translate::getText('Подтверждение бронирования') . '</h3>';
				// Тип оплаты
				echo '<input' . ($isOtherAvailable ? '' : ' style="display:none;"') . ' tabindex="61" type="radio" id="Booking_payment_type_credit_card" class="Booking_payment_type" value="Credit card" name="Booking[payment_type]" ' . (!isset($objBooking->tableFields['payment_type']) || $objBooking->tableFields['payment_type'] == 'Credit card' ? 'checked="checked"' : '') . ' /><label' . ($isOtherAvailable ? '' : ' style="display:none;"') . ' for="Booking_payment_type_credit_card">' . Service_Translate::getText('Кредитная карта') . '</label>';
				if ($isOtherAvailable) echo '<input type="radio" tabindex="61" id="Booking_payment_type_other" class="Booking_payment_type" value="Another" name="Booking[payment_type]" ' . (isset($objBooking->tableFields['payment_type']) && ($objBooking->getField('payment_type') == 'Another') ? 'checked="checked"' : '') . ' /><label for="Booking_payment_type_other">' . Service_Translate::getText('Другая') . '</label>';
				// Тип кредитки
				$this->showCreditCardTypeForm($objForm, $arrCreditCards);
				if ($isOtherAvailable) {
					echo '<div id="paymentType" style="display:none;">';
					$objForm->selectField(array('class' => 'mainSelect', 'required' => 1, 'optionsArray' => $this->arrOtherPaymentTypes),'other_payment_type');
					echo '</div>';
				}
			//	echo '<pre>'; print_r($arrBlockQty);print_r($arrBookingInfo); echo '</pre>';
				$showFreeCancelation = true;
				foreach ($arrBlockQty as $blockId => $blockValue) {
					if (!$arrBookingInfo['block'][$blockId]['free']) {
						$showFreeCancelation = false;
						break;
					}
				}
			echo '</div>'; 
			if ($language == 'ru') {
				echo '<div class="faq">';
					echo '<fieldset><h3>Процедура бронирования</h3>';
						echo '<div>';
							echo '<ul>';
								echo '<li><a>Как проходит бронирование?</a></li>';
								echo '<div>
									<p>После успешного оформления заказа номер в отеле моментально закрепляется за Вами в онлайн-системе, о чём Вы увидите уведомление на экране Вашего компьютера (это уведомление также направляется на Ваш электронный адрес), с указанием номера заказа.</p>
									<p>После этого Вы можете быть уверены, что Ваш номер  уже никому, кроме Вас, не будет продан. Отель получит уведомление о Вашем бронировании, а на Ваш электронный адрес в течение 5-10 минут придёт ваучер - подтверждение Вашей брони.</p>
								</div>';
								echo '<li><a>Безопасно ли предоставлять данные банковской карты?</a></li>';
								echo '<div>
									<p>Информация о Вашей кредитной карте посылается в отель через защищенный сервер. Мы используем самые безопасные технологии, существующие в настоящее время, с помощью которых шифруются все личные сведения и информация о кредитной карте.</p>
									<p>Данные кредитной карты могут быть использованы только отелем и только в соответствии с условиями, указанными при бронировании.</p>
								</div>';
								if ($showFreeCancelation) {
									echo '<li><a>Оплата в отеле - что это значит?</a></li>';
									echo '<div>
										<p>Все расчёты осуществляются в отеле: при заезде вы сможете оплатить номер наличными в валюте отеля, либо принимаемыми в отеле кредитными картами.</p>
									</div>';
									echo '<li><a>Для чего нужна кредитная карта?</a></li>';
									echo '<div>
										<p>Кредитная карта предоставляется в качестве гарантии Вашей брони на случай поздней отмены бронирования или незаезда.</p><p>Отель не будет производить списания со счёта, но может проверить, действительна ли карта и достаточно ли на ней средств - эта процедура называется "преавторизация" ("блокировка", "заморозка").</p> 
									</div>';
									echo '<li><a>Обязательно ли иметь деньги на карте?</a></li>';
									echo '<div>
										<p>Отель может проверить наличие достаточных средств на карте и произвести преавторизацию (блокирование) суммы, покрывающей стоимость от одной ночи до всего срока проживания. Это мера предосторожности, предпринимаемая отелем на случай Вашего незаезда или поздней отмены бронирования.</p><p>Если отель проведёт такую процедуру и не обнаружит достаточно средств на Вашей карте, Вы получите сообщение с просьбой пополнить Ваш счёт или предоставить другую карту. Обычно на это предоставляется один день, в течение которого бронь будет сохранена за Вами.</p>
									</div>';
								}
								else {
									echo '<li><a>Предоплата - что это значит?</a></li>';
									echo '<div>
										<p>Необходимость предоплаты обычно связана с особыми низкими тарифами, либо с датами высокой загрузки отеля, при которых аннуляция номера без штрафа будет невозможна. Оплата снимается с Вашей банковской карты и деньги поступают в отель напрямую, без посредников.<p></p>Если Вы не хотите, чтобы деньги с Вашей карты снимались, или сомневаетесь, точно ли поездка состоится, мы рекомендуем Вам выбрать другой тариф - с возможностью бесплатной отмены бронирования.</p>
									</div>';
								}
							echo '</ul>';
						echo '</div>';
					echo '</fieldset>';
				echo '</div>';
			}
			echo '<div class="clear"></div>';
			// Выводим инфо про типы оплаты
			$this->_showBookingFormInfoBlock($objBooking, $isOtherAvailable);
			
			// Выводим форму кредитной карты
			$this->showCreditCardForm($objForm);
		echo '</div>';		
	}	
	
	/**
	 * Поля для ввода страны и города в форме бронирования
	 * 
	 * @param Form_ViewForm $objForm - Объект формы
	 * @param BaseHotel $objHotel - Отель
	 * @param array $arrCountries - Страны
	 * @param int $tabIndex - Порядковый номер для tabindex
	 * @param bool $showHeader - Надо ли выводить заголовок
	 */
	protected function _showBookingFormStep30(Form_ViewForm $objForm, BaseHotel $objHotel, array $arrCountries, $tabIndex, $showHeader = true) {
		Service_Debug::setDebug();
		$language = Service_Translate::getLang();
		echo '<div id="booking-step-country">';
		 	if ($showHeader) echo '<h2>' . Service_Translate::getText('Ваши данные') . '</h2>';
			echo '<ul class="yourDate">';
				echo '<li class="marginRight">';
					$arrCountriesForTop[0] = array('country_code' => '', 'country_name_' . $language => '---');
					$arrCountriesForTop[1] = array('country_code' => 'ru', 'country_name_' . $language => Service_Translate::getText('Российская Федерация'));
					$objForm->selectField(array('class' => 'mainSelect vRequired', 'text' => Service_Translate::getText('Страна'), 'required' => 1, 'tabindex' => $tabIndex++, 'optionsArray' => $arrCountries, 'optionsArrayForTop' => $arrCountriesForTop, 
										'keyName' => 'country_code', 'valueName' => 'country_name_' . $language),
										'country_code');
				echo '</li>';
 				echo '<li>';
					$objForm->textField(array('class' => 'beautyText vName', 'maxlength' => 128, 'tabindex' => $tabIndex++, 'text' => Service_Translate::getText('Город/Поселок/Деревня'), 'required' => 1), 'city');
				echo '</li>';
			echo '</ul><hr class="clear" />';
		echo '</div>';		
	}
	
	/**
	 * Выводим информационные блоки про разные типы бронирования 
	 * 
	 * @param Booking $objBooking - Бронирование
	 * @param bool $isOtherAvailable - Доступны ли другие типы оплаты
	 */
	protected function _showBookingFormInfoBlock(Booking $objBooking, $isOtherAvailable) {
		Service_Debug::setDebug();
		$language = Service_Translate::getLang();
		echo '<div id="allGood">';
		 	echo '<div class="icon"></div>';
		 	echo '<div class="message">';
			if ($language == 'ru') {
				echo '<p>Оплата осуществляется в отеле при заезде, любым удобным способoм.</p>';
				if ($objBooking->getField('deposit_required')) echo '<p>Для подтверждения бронирования отель может снять оплату с Вашей кредитной карты.</p>'; 
				else echo '<p>Гостиница не снимает никаких средств с кредитной карты.</p>';
				echo '<p>Указание карты необходимо для моментального подтверждения бронирования.</p>';
				echo '<p>Комиссия не взимается.</p>';
				
			}
			else {
				echo '<p>';			
					if ($objBooking->getField('deposit_required')) echo Service_Translate::getText('Плата за бронирование отсутствует. Номер...');
					else echo Service_Translate::getText('Ваша кредитная карта необходима для гарантии...');
				echo '</p>';
				echo '<p>' . Service_Translate::getText('Моментальное подтверждение бронирования отеля.') . '</p>';			
			}							 	
		 	echo '</div>';
		 	echo '<div class="clear"></div>';
		echo '</div>';
		if ($isOtherAvailable) {
			echo '<div id="allBad">';
				echo '<div class="icon"></div>';
			 	echo '<div class="message">';
			 		echo '<p>После получения Вашей заявки наш менеджер свяжется с Вами, чтобы уточнить детали бронирования и оплаты.</p>
			 					<p>*При оплате альтернативным способом взимается сервисный сбор, равный 4% от стоимости проживания, указанной на сайте.</p>
								<p>*Обращаем Ваше внимание, что при бронировании без гарантии кредитной картой Hotels.ru не может гарантировать моментального подтверждения отеля. Бронирование будет осуществляться только после внесения оплаты.</p>';
			 	echo '</div>';
			echo '</div>';
		}
		echo '<div class="clear"></div>';		
	}
	
	/**
	 * Выводим селект для выбора типа кредитной карты
	 * 
	 * @param Form_ViewForm $objForm - Форма
	 * @param array $arrCreditCards - Доступные кредитки
	 */
	public function showCreditCardTypeForm(Form_ViewForm $objForm, array $arrCreditCards) {
		Service_Debug::setDebug();
		echo '<div id="creditCardType">';
 			$arrCreditCardsForTop[0] = array('ID_credit_card' => '', 'credit_card_name' => '---');
 			if (empty($arrCreditCards)) {
 				$arrCreditCards[0] = array('ID_credit_card' => 2, 'is_bookable' => 1, 'is_payable' => 1, 'credit_card_name' => 'Visa');
			  $arrCreditCards[1] = array('ID_credit_card' => 3, 'is_bookable' => 1, 'is_payable' => 1, 'credit_card_name' => 'Euro/Mastercard');
 			}
			$objForm->selectField(array('text' => Service_Translate::getText('Тип кредитной карты'), 'required' => 1, 'tabindex' => 63, 'optionsArray' => $arrCreditCards, 'optionsArrayForTop' => $arrCreditCardsForTop, 
				'keyName' => 'ID_credit_card', 'valueName' => 'credit_card_name', 'class' => 'mainSelect standardSelect vRequired credit-card'),
				'ID_credit_card');	 			
		echo '</div>';
	}
	
	/**
	 * Выводим форму для ввода кредитной карты
	 * 
	 * @param Form_ViewForm $objForm - Форма
	 */
	public function showCreditCardForm(Form_ViewForm $objForm) {
		Service_Debug::setDebug();
		echo '<div id="creditCard">';
			echo '<div id="faceSide">';
		 		echo '<div id="numberCard">';
					echo '<p>' . Service_Translate::getText('Номер карты') . '</p>';
					echo '<span>';
					$objForm->textField(array('maxlength' => 4, 'required' => 1, 'tabindex' => 66, 'class' => 'beautyText ccNumberPart cardText input visa'), 'cc_number_1', true);
					$objForm->textField(array('maxlength' => 4, 'required' => 1, 'tabindex' => 67, 'class' => 'beautyText ccNumberPart cardText input visa'), 'cc_number_2', true);
					$objForm->textField(array('maxlength' => 4, 'required' => 1, 'tabindex' => 68, 'class' => 'beautyText ccNumberPart cardText input visa'), 'cc_number_3', true);
					$objForm->textField(array('maxlength' => 4, 'required' => 1, 'tabindex' => 69, 'class' => 'beautyText ccNumberPart cardText input visa'), 'cc_number_4', true);
					$objForm->textField(array('maxlength' => 4, 'required' => 1, 'tabindex' => 70, 'class' => 'beautyText ccNumberPart cardText mini-input amex'), 'cc_number_5', true);
					$objForm->textField(array('maxlength' => 6, 'required' => 1, 'tabindex' => 71, 'class' => 'beautyText ccNumberPart cardText big-input amex'), 'cc_number_6', true);
					$objForm->textField(array('maxlength' => 5, 'required' => 1, 'tabindex' => 72, 'class' => 'beautyText ccNumberPart cardText big-input amex'), 'cc_number_7', true);
					$objForm->hiddenField(array('required' => 1, 'class' => 'standardText vCreditCard'), 'cc_number');
					echo '</span>';
	 			echo '</div>';
	 			echo '<div id="validity">';
	 				echo '<p>' . Service_Translate::getText('Действительна до') . '</p>';
					$objForm->textField(array('class' => 'beautyText vExpirity cardText', 'maxlength' => 5, 'required' => 1, 'tabindex' => 73, 'placeholder' => '00/00'), 'cc_expiration_date');
	 			echo '</div>';
	 			echo '<div id="nameCard">';
	 				echo '<p>' . Service_Translate::getText('Имя и фамилия') . '</p>';
	 				$objForm->textField(array('class' => 'beautyText vFullName cardText', 'maxlength' => 50, 'required' => 1, 'tabindex' => 75), 'cc_cardholder');
	 			echo '</div>';
	 		echo '</div>';
	 		echo '<div id="backSide">';
	 			echo '<div id="lastNumber">';
					echo '<p><span>' . Service_Translate::getText('Три последние цифры') . '</span></p>';
	 				$objForm->textField(array('class' => 'beautyText vCvc cardText', 'maxlength' => 4, 'required' => 1, 'placeholder' => '000', 'tabindex' => 74), 'cc_cvc');
	 			echo '</div>';
	 		echo '</div>';
		echo '</div>';				
	}
	
	/**
	 * Отображаем кнопку бронирования и скрытые поля
	 * 
	 * @param Form_ViewForm $objForm - Форма
	 * @param BaseHotel $objHotel - Отель
	 */
	protected function _showBookingFormEndBlock(Form_ViewForm $objForm, BaseHotel $objHotel) {
		Service_Debug::setDebug();
		// Выводми скрытые поля
		$objForm->hiddenField(array(), 'date_arr');
		$objForm->hiddenField(array(), 'date_dep');
		$objForm->hiddenField(array(), 'rooms');
		$objForm->hiddenField(array(), 'adult');
		$objForm->hiddenField(array(), 'children');
		$objForm->hiddenField(array(), 'ID_hotel');
		$objForm->hiddenField(array(), 'is_our');
		
		// Выводим кнопку и условия
		echo '<div id="booking-button"' . ($objHotel->getField('no_cc') ? '' : ' style="display:none;"') . '>';
			echo '<div id="iAccept">';
				echo Service_Translate::getText('Я принимаю');
				echo ' <a href="' . View_Base::getLanguageUrl(W_FULLPATH . 'booking.htm', true) . '" onclick="window.open(\'' . View_Base::getLanguageUrl(W_FULLPATH . 'booking.htm', true) . '\',\'Booking\',\'scrollbars,left=30,top=30,height=700,width=1020\'); return false;">' . Service_Translate::getText('условия договора публичной оферты') . '</a> ';
				echo Service_Translate::getText('и');
				echo ' <a href="' . View_Base::getLanguageUrl(W_FULLPATH . 'book/rules/', true) . '?' . Service_Function::getValue('', $_SERVER, 'QUERY_STRING') .  '" onclick="window.open(\'' . View_Base::getLanguageUrl(W_FULLPATH . 'book/rules/', true) . '?' . Service_Function::getValue('', $_SERVER, 'QUERY_STRING') .  '\',\'Booking\',\'scrollbars,left=30,top=30,height=700,width=1020\'); return false;">' . Service_Translate::getText('правила отеля') . '</a>';
			echo '</div>';				
			$objForm->submitButton(array('class' => 'endStep', 'value' => Service_Translate::getText('Заказать'), 'tabindex' => 100), 'save', true);
			echo '<p class="underField" id="noFee">' . Service_Translate::getText('Без комиссии') . '</p>';
		echo '</div>';		
	}
	
	/**
	 * Выводим информацию об отеле и заказе.
	 * 
	 * @param Booking $objBooking - Объект бронирования
	 * @param BaseHotel $objHotel - Объект отеля
	 * @param array $arrBookingInfo - Массив с информацией о бронировании
	 * @param array $arrBlockQty - массив с блоками и их количеством
	 * @param string $backLink - Обратная ссылка
	 */
	public function showHotelOrder(Booking $objBooking, BaseHotel $objHotel, $arrBookingInfo, $arrBlockQty) {
		Service_Debug::setDebug();
		
		$language = Service_Translate::getLang();
		$objExchange = Service_Exchange::instance();
		$days = Service_Date::dateDiff(Service_Date::changeDateFormat($objBooking->getField('date_arr'), 'd/m/Y'), Service_Date::changeDateFormat($objBooking->getField('date_dep'), 'd/m/Y'), 'd', 1);
		$backLink = View_Hotel::getHotelBackLink($objHotel, $objBooking->getField('date_arr'), $objBooking->getField('date_dep'));
		
		echo '<div id="hotelOrder">';
			echo '<div id="hotelOrderLeft">';
		 		echo View_Hotel::getHotelPoster($objHotel->tableFields, 'square85', true, array(), true);
		 		echo '<div id="hotelOrderInfo">';
		 			echo '<h3><a href="' . $backLink . '" target="_blank">' . View_Hotel::getName($objHotel->tableFields) . '</a></h3>';
		 			echo '<div class="stars stars' . $objHotel->getField('class') . '"></div>';
		 			echo '<div id="hotelOrderAddress" class="grey">' . Service_Function::getValue($objHotel->getField('address_en'), $objHotel->tableFields, 'address_' . $language) . '</div>';
		 		echo '</div>';		 	
		 		echo '<div id="hotelOrderDescription">';
		 			echo '<p><strong title="';
		 			if (sizeof($arrBlockQty) > 1) {
			 			foreach ($arrBlockQty as $blockId => $blockQty) {
			 				echo str_replace('"', "'", $arrBookingInfo['block'][$blockId]['name']) . ' x ' . $blockQty . "<br />";
			 			}
		 			}
		 			echo '">';
		 			if (sizeof($arrBlockQty) == 1) {
		 				$arrBlockIds = array_keys($arrBlockQty);
		 				echo str_replace('"', "'", $arrBookingInfo['block'][$arrBlockIds[0]]['name']);
		 				if ($arrBlockQty[$arrBlockIds[0]] > 1) echo ' x ' . $arrBlockQty[$arrBlockIds[0]];  
		 			}
		 			else echo Service_Translate::getText('Несколько номеров', array_sum($arrBlockQty));
		 			echo '</strong></p>';
		 			echo '<p style="margin-top:15px;"><strong>' . Service_Translate::getText('Бронирование на') .' ' . $days . ' ' . Service_Declination::getNightsDeclension($days) . '</strong></p><p>' . Service_Date::getRusDate($objBooking->getField('date_arr'), true) . ' - ' . Service_Date::getRusDate($objBooking->getField('date_dep'), true) . '</p>';
		 		echo '</div>';
		 		echo '<div id="hotelOrderBonus">';
		 			echo '<div id="hotelOrderGuarantee" class="popupTrigger">' . Service_Translate::getText('Гарантия самой низкой цены') . '</div>';
		 			echo '<div id="guaranteeText" class="popupBox" style="display:none;">' . Service_Translate::getText('Гарантия низкой цены текст') . '</div>';
		 			echo '<div id="hotelOrderСonfirmation" class="popupTrigger">' . Service_Translate::getText('Моментальное подтверждение бронирования') . '</div>';
		 			if ($language == 'ru') {
				 		echo '<div id="bookingInfoBonus" class="popupBox">';
							View_Block::showInstantConfirmationText();
						echo '</div>';		 			
		 			}
		 		echo '</div>';
		 	echo '</div>';
		 	echo '<div id="hotelOrderRight">';
		 		echo '<p><b>' . Service_Translate::getText('Итоговая стоимость') . '</b></p>';
		 		echo '<p><strong>' . $objExchange->getSpanPrice($objBooking->getField('full_price'), $objHotel->getField('currency_code')) . '</strong></p>';
		 		echo '<p class="pay-in-hotel">';
		 			if ($objBooking->getField('deposit_required')) {
		 				$arrBlockIds = array_keys($arrBlockQty);
		 				$policyPrePay = Service_Booking::getRoomPolicyPrePay($arrBookingInfo['block'][$arrBlockIds[0]]['text']);
		 				if (sizeof($arrBlockQty) == 1 && $policyPrePay) echo $policyPrePay;
		 				else echo Service_Translate::getText('Требуется предоплата');
		 			}
		 			else echo Service_Translate::getText('Оплата в отеле при заезде');
		 		echo '</p>';
		 		if ($objBooking->getField('rooms') > 1) {
		 			$m = 0;
		 			echo '<p class="details popupTrigger"><a href="#" onclick="return !1;">' . Service_Translate::getText('детализация стоимости') . '</a></p>';
		 			echo '<div class="detailsText popupBox" style="display:none;">';
			 			foreach ($arrBlockQty as $blockId => $blockQty) {
			 				echo '<div class="detailsBlock">';
			 					echo '<h4>' . $arrBookingInfo['block'][$blockId]['name'] . '</h4>';
								for ($i = 0; $i < $blockQty; $i++) echo '<p data-number="' . ($m++) . '">' . ($i + 1) . ': ' . $objExchange->getSpanPrice($arrBookingInfo['block'][$blockId]['prices'][$i] - (isset($arrBookingInfo['block'][$blockId]['prices'][$i - 1]) ? $arrBookingInfo['block'][$blockId]['prices'][$i - 1] : 0), $objHotel->getField('currency_code')) . '</p>';
			 				echo '</div>';
			 			}
		 				echo '<div class="detailsBlock">';
		 					echo '<h4>' . Service_Translate::getText('Итоговая стоимость') . ':</h4>';
		 					echo '<p>' . $objExchange->getSpanPrice($objBooking->getField('full_price'), $objHotel->getField('currency_code')) . '</p>';
		 				echo '</div>';		 			
		 			echo '</div>';
		 		}
		 	echo '</div>';
		echo '</div>';		
	}
	
	/**
	 * Информация об успешном завершении заказа
	 * 
	 * @param array $arrResult - результат бронирования
	 */
	public function showBookComplete($arrResult) {
		Service_Debug::setDebug();
		echo '<div id="bookingContent">';
		/* Шаг 4 */
			echo '<div id="bookingStep4">';
		 		echo '<div class="completeMessage">';
		 		if ($arrResult['payment_type'] == 'Another') {
					switch ($arrResult['other_payment_type']) {
						case 'Bank transfer':
							echo '<p>' . Service_Translate::getText('Bank transfer Благодарим Вас за бронирование...') . '</p>';
							break;
						case 'QIWI':
							echo '<p>' . Service_Translate::getText('QIWI Благодарим Вас за бронирование...') . '</p>';
							break;
						case 'WebMoney':
							echo '<p>' . Service_Translate::getText('WebMoney Благодарим Вас за бронирование...') . '</p>';
							break;
						case 'Cash':
							echo '<p>' . Service_Translate::getText('Cash Благодарим Вас за бронирование...') . '</p>';
							break;
						case 'Other':
							echo '<p>' . Service_Translate::getText('Other Благодарим Вас за бронирование...') . '</p>';
							break;
						default:
							echo '<p>' . Service_Translate::getText('Благодарим Вас за бронирование отеля на сайте Hotels.ru') . '</p>';		
							break;
					} 
		 		}
		 		else {
		 			echo '<p>' . Service_Translate::getText('Благодарим Вас за бронирование отеля на сайте Hotels.ru') . '</p>';
					echo '<p>' . Service_Translate::getText('Ваш заказ успешно выполнен...') . '</p>';
					echo '<p>' . Service_Translate::getText('Если Вам потребуется отменить заказ...') . ': ';
					echo '<a href="' . W_FULLPATH . Service_Translate::getLangForUrl() . '/cancellation.htm?e_mail=' . $arrResult['e_mail'] . '&id=' . $arrResult['id'] . '">' . Service_Translate::getText('Отмена бронирования') . '</a></p>';
				}
				echo '</div>';
			echo '</div>';
			/*
			echo '<div class="fb-popunder">';
				echo '<h2>' . Service_Translate::getText('Давайте дружить!') . '</h2>';
				echo '<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?52"></script>
<!-- VK Widget -->
<div id="vk_groups" style="float:right; margin: 20px 10px;"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 1, width: "320", height: "160"}, 10296903);
</script>';
				echo '<iframe src="//www.facebook.com/plugins/facepile.php?href=http%3A%2F%2Fwww.facebook.com%2FHotels.ru&amp;action&amp;size=medium&amp;max_rows=1&amp;width=300&amp;colorscheme=light" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; margin: 0 10px 0; height:80px;" allowTransparency="true"></iframe>';
				echo '<iframe src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2FHotels.ru&amp;width=470&amp;height=62&amp;colorscheme=light&amp;show_faces=false&amp;border_color&amp;stream=false&amp;header=false" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:320px; height:75px; margin: 0px 0px;" allowTransparency="true"></iframe>';
				echo '<div class="clear"></div>';
			echo '</div>';*/
			echo '<div class="fb-popunder">';
				echo '<h2>' . Service_Translate::getText('Давайте дружить!') . '</h2>';
				echo '<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?52"></script>
<!-- VK Widget -->
<div id="vk_groups" style="float:right; margin: 10px 5px"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 0, width: "320", height: "158"}, 10296903);
</script>';
				//echo '<iframe src="//www.facebook.com/plugins/facepile.php?href=http%3A%2F%2Fwww.facebook.com%2FHotels.ru&amp;action&amp;size=medium&amp;max_rows=1&amp;width=300&amp;colorscheme=light" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; margin: 0 10px 0; height:80px;" allowTransparency="true"></iframe>';
				//echo '<iframe src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2FHotels.ru&amp;width=470&amp;height=62&amp;colorscheme=light&amp;show_faces=false&amp;border_color&amp;stream=false&amp;header=false" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:320px; height:75px; margin: 0px 0px;" allowTransparency="true"></iframe>';
				echo '<iframe src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fhotels.ru&amp;width=350&amp;height=215&amp;colorscheme=light&amp;show_faces=true&amp;border_color&amp;stream=false&amp;header=false" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:350px; height:215px; margin: 10px 5px;" allowTransparency="true"></iframe>';
				echo '<div class="clear"></div>';
			echo '</div>';			
		echo '</div>';
	}	
	

	public static function showInstantConfirmationText() {
		Service_Debug::setDebug();
		echo '<ul>';
			echo Service_Translate::getText('Текст моментального подтверждения бронирования'); 
		echo '</ul>';			
	}

	/**
	 * Выводит правила отеля и выбранных номеров 
	 * 
	 * @param array $arrBookingInfo - массив с инфой об отеле и номерах
	 * @param array $arrBlockQty - массив с номерами и их количеством
	 */
	public function showRules(array $arrBookingInfo, array $arrBlockQty) {
		Service_Debug::setDebug();
		echo '<div id="all-hotel-rules">';
			echo '<h2>' . Service_Translate::getText('Правила отеля') . '</h2>';
			echo '<div id="hotel-rules">';
				echo $arrBookingInfo['policies'];
			echo '</div>';
			echo '<h2>' . Service_Translate::getText('Правила номеров') . '</h2>';
			foreach ($arrBlockQty as $blockId => $blockQty) {
				echo '<div class="room-rules">';
					echo '<h3>' . $arrBookingInfo['block'][$blockId]['name'] . ' x ' . $blockQty . '</h3>';
					echo $arrBookingInfo['block'][$blockId]['text'];
				echo '</div>';
			}
		echo '</div>';
	}
	
	/**
	 * Выводит страницу информацию о заказе для редактирования 
	 * 
	 * @param User_User $objUser - Объект пользователя
	 * @param Booking $objBooking - Объект бронирования
	 * @param BaseHotel $objHotel - Объект отеля
	 * @param array $arrNames - Массив данных о городе, стране отеля
	 */
	public function showProfileBookingInfo(User_User $objUser, Booking $objBooking, BaseHotel $objHotel, array $arrNames) {
		Service_Debug::setDebug();
		$language = Service_Translate::getLang();
		$objExchange = Service_Exchange::instance();
		$days = Service_Date::dateDiff(Service_Date::changeDateFormat($objBooking->getField('date_arr'), 'Y-m-d'), Service_Date::changeDateFormat($objBooking->getField('date_dep'), 'Y-m-d'), 'd', 1);
		$backLink = View_Hotel::getUrl($objHotel->tableFields);
		
		echo '<div id="hotelOrder">';
			echo '<div id="hotelOrderLeft">';
		 		echo '<div id="hotelOrderPoster"><div class="poster">' . str_replace('http:', 'https:', View_Hotel::getHotelPoster($objHotel->tableFields, 'square85')) . '</div></div>';
		 		echo '<div id="hotelOrderInfo">';
		 			echo '<h3><a href="' . $backLink . '" target="_blank">' . View_Hotel::getName($objHotel->tableFields) . '</a></h3>';
		 			echo '<div class="stars stars' . $objHotel->getField('class') . '"></div>';
		 			echo '<div id="hotelOrderAddress" class="grey">' . Service_Function::getValue($objHotel->getField('address_en'), $objHotel->tableFields, 'address_' . $language) . '</div>';
		 		echo '</div>';		 	
		 		echo '<div id="hotelOrderDescription">';
		 			echo '<p><strong>';
		 				$this->showBookingRoomsParams($objBooking->tableFields);
		 			echo '</strong></p>';
		 			echo '<p style="margin-top:15px;"><strong>' . Service_Translate::getText('Бронирование на') .' ' . $days . ' ' . Service_Declination::getNightsDeclension($days) . '</strong></p><p>' . Service_Date::getRusDate(Service_Date::changeDateFormat($objBooking->getField('date_arr'), 'Y-m-d', 'd/m/Y'), true) . ' - ' . Service_Date::getRusDate(Service_Date::changeDateFormat($objBooking->getField('date_dep'), 'Y-m-d', 'd/m/Y'), true) . '</p>';
		 		echo '</div>';
		 		echo '<div id="hotelOrderBonus">';
		 			echo '<div id="hotelOrderGuarantee" class="popupTrigger">' . Service_Translate::getText('Гарантия самой низкой цены') . '</div>';
		 			echo '<div id="guaranteeText" class="popupBox" style="display:none;">' . Service_Translate::getText('Гарантия низкой цены текст') . '</div>';
		 			echo '<div id="hotelOrderСonfirmation" class="popupTrigger">' . Service_Translate::getText('Моментальное подтверждение бронирования') . '</div>';
		 			if ($language == 'ru') {
				 		echo '<div id="bookingInfoBonus" class="popupBox">';
							View_Block::showInstantConfirmationText();
						echo '</div>';		 			
		 			}
		 		echo '</div>';
		 	echo '</div>';
		 	echo '<div id="hotelOrderRight">';
		 		echo '<p><b>' . Service_Translate::getText('Итоговая стоимость') . '</b></p>';
		 		echo '<p><strong>' . $objExchange->getSpanPrice($objBooking->getField('full_price'), $objHotel->getField('currency_code')) . '</strong></p>';
		 	echo '</div>';
		echo '</div>';		
	}
	
	/**
	 * Выводит параметры по комнатам, людям, детям в бронировании или поиске
	 * 
	 * @param array $arrSearchParams - Массив с поисковыми параметрами
	 */
	public function showBookingRoomsParams(array $arrSearchParams) {
		Service_Debug::setDebug();
		$rooms = $arrSearchParams['rooms'];
		$adult = $arrSearchParams['adult'];
		$children = $arrSearchParams['children'];
		if ($rooms > 1) $roomsName = Service_Declination::getRoomsDeclension($rooms);
		if ($adult == 1) $adultName = "взрослый";
		else $adultName = "взрослых";
		if ($children > 0) $childrenName = Service_Declination::getChildrenDeclension($children);
		if ($children && $rooms > 1) $peopleName = Service_Declination::getPeopleDeclension($children + $adult);
		echo '<p>';
		if (!empty($roomsName)) echo $rooms . ' ' . $roomsName . ' ';
		if (!empty($peopleName)) echo ($adult + $children) . ' ' . $peopleName;
		else {
			echo  $adult . ' ' . Service_Translate::getText($adultName);
			if (!empty($childrenName)) echo ' ' . $children . ' ' . $childrenName;
		}				
	}
	
	/**
	 * Вывод верхнего блока страницы поиска
	 * 
	 * @param array $arrSearchParameters - Поисковые параметры 
	 * @param Object $objEssence - Сущность для заполнения
	 * @param array $arrEssenceNames - Названия для заполнения
	 */
	public function showTopSearch(array $arrSearchParameters, $objEssence, array $arrEssenceNames) {
		Service_Debug::setDebug();
		$dateArr = $arrSearchParameters['date_arr'];
		$dateDep = $arrSearchParameters['date_dep'];
		$adult = $arrSearchParameters['adult'];
		$children = $arrSearchParameters['children'];
		$countNight =  Service_Date::dateDiff(Service_Date::dateToBD($dateArr), Service_Date::dateToBD($dateDep), 'd') . '';
		$nightName = Service_Declination::getNightsDeclension($countNight);
		
		echo '<div class="search-top" id="topSearch">';
			echo '<h2>';
				if ($arrSearchParameters['essence_name'] == 'city') echo View_City::getName($arrEssenceNames);
				elseif ($arrSearchParameters['essence_name'] == 'country') echo View_Country::getName($arrEssenceNames);
				elseif ($arrSearchParameters['essence_name'] == 'region') echo View_Region::getName($arrEssenceNames);
			echo ' <sup></sup></h2>';
			echo '<div class="parameters">';
				echo '<div class="current-information">';
					echo '<div class="people">' . Service_Translate::getText('Для') . ' ' . $adult . ' ' . Service_Translate::getText(Service_Function::getDeclination($adult, 'взрослого', 'взрослых', 'взрослых')) . ($children ? ' ' . Service_Translate::getText('и') . ' ' . $children . ' ' . Service_Translate::getText(Service_Function::getDeclination($children, 'ребенка', 'детей', 'детей')) : null) . '</div>';
					echo '<div class="date">' . $countNight . ' ' . Service_Translate::getText($nightName) . ' (' . ($dateArr && $dateDep ? Service_Date::getRusDate($dateArr, false) . ' - ' . Service_Date::getRusDate($dateDep, false) : '') . ')</div>';
				echo '</div>';
				echo '<a class="show-params-form change-parameters">' . Service_Translate::getText('Изменить') . '</a>';
			echo '</div>';
			echo '<div class="top-filter">';
			
				
				echo '<div class="filter-section select-filter drop-filter">';
				echo '<span class="legend green">' . Service_Translate::getText('Сортировать по') . '</span><br>';
			//	echo '<span class="big-icon">&nbsp;</span>';
				echo '<span class="current-text"></span>';
				echo '<div id="sorting" class="drop-filter-body order-filter">';
					echo '<label>' . Service_Translate::getText('рейтингу') . '<input type="radio" name="sort-filter" value="ranking" checked="checked" /></label>';
					echo '<label>' . Service_Translate::getText('алфавиту') . '<input type="radio" name="sort-filter" value="name" /></label>';
					echo '<label>' . Service_Translate::getText('цене одноместного') . '<input type="radio" name="sort-filter" value="room1Price" /></label>';
					echo '<label>' . Service_Translate::getText('цене двухместного') . '<input type="radio" name="sort-filter" value="room2Price" /></label>';
					echo '<label>' . Service_Translate::getText('цене трехместного') . '<input type="radio" name="sort-filter" value="room3Price" /></label>';
					echo '<label>' . Service_Translate::getText('оценке') . '<input type="radio" name="sort-filter" value="review_score" /></label>';
					echo '<label>' . Service_Translate::getText('размеру скидки') . '<input type="radio" name="sort-filter" value="discount" /></label>';
					echo '<label>' . Service_Translate::getText('расстоянию от центра') . '<input type="radio" name="sort-filter" value="distance" /></label>';
					echo '<label>' . Service_Translate::getText('количеству номеров') . '<input type="radio" name="sort-filter" value="nr_rooms" /></label>';
				echo '</div>';
				echo '</div>';
			
				/*echo '<div class="filter-section ">';
					echo '<span class="legend green">' . Service_Translate::getText('Сортировать по') . '</span><br>';
					echo '<select name="sort-filter" id="sorting">';
						echo '<option value="ranking">' . Service_Translate::getText('рейтингу') . '</option>';
						echo '<option value="name">' . Service_Translate::getText('алфавиту') . '</option>';
						echo '<option value="no_cc">' . Service_Translate::getText('упрощенному бронированию') . '</option>';
						echo '<option value="room1Price">' . Service_Translate::getText('цене одноместного') . '</option>';
						echo '<option value="room2Price">' . Service_Translate::getText('цене двухместного') . '</option>';
						echo '<option value="room3Price">' . Service_Translate::getText('цене трехместного') . '</option>';
						echo '<option value="review_score">' . Service_Translate::getText('оценке') . '</option>';		
						echo '<option value="discount">' . Service_Translate::getText('скидке') . '</option>';
					echo '</select>';
				echo '</div>';*/
				
				echo '<div class="filter-section type-filter drop-filter">';
					echo '<span class="legend normal">' . Service_Translate::getText('Тип отеля') . '</span>';
					echo '<span class="big-icon center">&nbsp;</span>';
					echo '<div class="drop-filter-body">';
					echo '</div>';
				echo '</div>';
				
				echo '<div class="filter-section people-filter drop-filter">';
					echo '<span class="legend normal">' . Service_Translate::getText('Человек в номере') . '</span>';
					echo '<span class="big-icon">&nbsp;</span>';
					echo '<span class="info">';		
					echo '</span>';
					echo '<div class="drop-filter-body count-people">';
						echo '<h6>' . 'Типы номеров' . '</h6>';
						new Form_Checkbox(array('label' => '<span></span> ' . Service_Translate::getText('1 номер'), 'attr' => array('value'=> 1, 'title' => Service_Translate::getText('1 номер') . '. ' . Service_Translate::getText('Отобразить')), 'noId' => true), null, true);
						new Form_Checkbox(array('label' => '<span></span><b>x2</b> ' . Service_Translate::getText('2 номер'), 'attr' => array('value' => 2, 'title' => Service_Translate::getText('2 номер') . '. ' . Service_Translate::getText('Отобразить')), 'noId' => true), null, true);
						new Form_Checkbox(array('label' => '<span></span><b>x3</b> ' . Service_Translate::getText('3 номер'), 'attr' => array('value' => 3, 'title' => Service_Translate::getText('3 номер') . '. ' . Service_Translate::getText('Отобразить')), 'noId' => true), null, true);
						new Form_Checkbox(array('label' => '<span></span><b>x4</b> ' . Service_Translate::getText('4 номер'), 'attr' => array('value' => 4, 'title' => Service_Translate::getText('4 номер') . '. ' . Service_Translate::getText('Отобразить')), 'noId' => true), null, true);
					echo '</div>';
				echo '</div>';
				
				echo '<div class="filter-section stars-filter drop-filter">';
					echo '<span class="legend normal">' . Service_Translate::getText('Звезды отелей') . '</span>';
					echo '<span class="big-icon">&nbsp;</span>';
					echo '<span class="info">';
						echo Service_Translate::getText('от') . ' <span class="from">1</span>*<br>';
						echo Service_Translate::getText('до_to'). ' <span class="to">5</span>*<br>';
					echo '</span>';
					echo '<div class="drop-filter-body">';
						echo '<div id="starsFilter" class="stars-filter-widget"></div>';
					echo '</div>';
				echo '</div>';
				
				echo '<div class="filter-section price-filter drop-filter">';
					echo '<span class="legend normal">' . Service_Translate::getText('Стоимость номера в сутки') . '</span>';
					echo '<span class="big-icon">&nbsp;</span>';
					echo '<span class="info">';
						echo Service_Translate::getText('от') . ' <span class="from"> </span><br>';
						echo Service_Translate::getText('до_to'). ' <span class="to"> </span><br>';
					echo '</span>';
					echo '<div class="drop-filter-body">';
						echo '<div id="price-right-filter">'; 
							$countNight =  Service_Date::dateDiff(Service_Date::dateToBD($arrSearchParameters['date_arr']), Service_Date::dateToBD($arrSearchParameters['date_dep']), 'd') . '';
							$nightName = Service_Declination::getNightsDeclension($countNight);
							echo '<div class="priceFilter">';
								echo '<div class="prices">';
									echo Service_Translate::getText('от') . ' <span><input type="text" class="from" /><img src="' . W_IMAGES . 'icons/actions/delete.gif" alt=""></span>'; 
									echo ' ' . Service_Translate::getText('до_to') . ' <span><input type="text" class="to" /><img src="' . W_IMAGES . 'icons/actions/delete.gif" alt=""></span>';
									echo ' <span class="currency">' . Service_Exchange::getManCurrency() . '</span>';
								echo '</div>';
								echo '<div class="slider"></div>';
								// Засечки
								for ($i = 1; $i <= 3; $i++) echo '<div class="numVal val' . $i . '"></div>';
							echo '</div>';
						echo '</div>';
					echo '</div>';
				echo '</div>';
				
				echo '<div class="filter-section service-filter drop-filter">';
					echo '<span class="legend normal">' . Service_Translate::getText('Услуги в отеле') . '</span>';
					echo '<span class="big-icon center">&nbsp;</span>';
					echo '<div class="drop-filter-body">';
						$objHotelFacility = new HotelFacility();
						$arrFilter['hotel_facility'] = Service_ArrayConverter::makeKeyArrayFromMultyArray($objHotelFacility->getHotelFacilityTypes(true), 'ID_hotel_facility_type');
						
						foreach ($arrFilter['hotel_facility'] as $i => $arrHotelFacility) {
							$arrHotelFacility = HotelFacility::makeShortName($arrHotelFacility);
							$objCheckbox = new Form_Checkbox(array('noId' => true, 'label' => $arrHotelFacility['hotel_facility_type_name'], 'class' => 'filter_hotel_facility', 'attr' => array('data-ID-hotel-facility-type' => $i), 'id'=>'filter-facility-' . $i), null, true);
						}
						$objCheckbox = new Form_Checkbox(array('label' => Service_Translate::getText('Завтрак включен'), 'class' => 'filter_hotel_facility', 'attr' => array('data-ID-hotel-facility-type' => -1), 'id'=>'filter-facility-'.(-1)), null, true);
					echo '</div>';
				echo '</div>';
				
				echo '<div class="filter-section cc-filter drop-filter">';
					echo '<span class="legend normal">' . Service_Translate::getText('Без карты') . '</span>';
					echo '<span class="big-icon center">&nbsp;</span>';
					echo '<div class="drop-filter-body">';
						echo '<label>' . Service_Translate::getText('Все') . '<input type="radio" name="cc-filter" value="-1" checked /></label>';
						echo '<label>' . Service_Translate::getText('Без кредитной карты') . '<input type="radio" name="cc-filter" value="1" /></label>';
						echo '<label>' . Service_Translate::getText('Только с кредитной картой') . '<input type="radio" name="cc-filter" value="0" /></label>';
					echo '</div>';
				echo '</div>';
				
				echo '<div class="filter-section name-filter drop-filter">';
				echo '<span class="legend normal">' . Service_Translate::getText('Поиск по названию отеля') . '</span>';
				echo '<input type="text" class="hotel-name" placeholder="' . Service_Translate::getText('начните вводить название отеля') . '" id="inputSearchByName"/>';
				echo '</div>';
				
				echo '<div class="selected-services">';
				echo '</div>';
			echo '</div>';
		echo '</div>';
		
// 		echo '<div id="topSearch">';
// 			echo '<div id="parametrs">';
// 				echo '<div id="searchParametrs">';
// 					// Определяем склонение слова "ночь" в зависимости от количества ночей
// 					$countNight =  Service_Date::dateDiff(Service_Date::dateToBD($dateArr), Service_Date::dateToBD($dateDep), 'd') . '';
// 					$nightName = Service_Declination::getNightsDeclension($countNight);
// 					echo '<p id="countNight">' . $countNight . ' ' . Service_Translate::getText($nightName) . ' (' . ($dateArr && $dateDep ? Service_Date::getRusDate($dateArr, false) . ' - ' . Service_Date::getRusDate($dateDep, false) : '') . ')</p>';
// 					// Отображаем что же ищет пользователь
// 					$this->showBookingRoomsParams($arrSearchParameters);
// 					echo '</p>';
// 				echo '</div>';
// 				echo '<a class="show-params-form behavior" href="#">' . Service_Translate::getText('Изменить параметры') . '</a>';
// 			echo '</div>';
// 			// Заголовок
// 			echo '<h1>';
// 				if ($arrSearchParameters['essence_name'] == 'city') echo View_City::getName($arrEssenceNames);
// 				elseif ($arrSearchParameters['essence_name'] == 'country') echo View_Country::getName($arrEssenceNames);
// 				elseif ($arrSearchParameters['essence_name'] == 'region') echo View_Region::getName($arrEssenceNames);
// 			echo ' </h1>';
// 			// Фильтры
// 			$this->showFilters();
// 		echo '</div>';
		echo '<div id="params-form" class="dialogShadow">';
			echo '<div class="close-form-btn">' . Service_Translate::getText('Закрыть') . '</div>';
			$this->showSearchForm($objEssence, $arrEssenceNames, true);
		echo '</div>';		
	}
	

	/**
	 * Отображаем фильтры в поиске
	 */
	public function showFilters() {
		Service_Debug::setDebug();
		echo '<div id="searchOptions">';
			// Сортировка
// 			echo '<div id="searchOrderBy">';
// 				echo '<span class="gray">' . Service_Translate::getText('Сортировать по') . ':&nbsp;</span>';
// 				echo '<select id="sorting" class="beautySelect filterSelect">';
// 					echo '<option value="ranking">' . Service_Translate::getText('рейтингу') . '</option>';
// 					echo '<option value="name">' . Service_Translate::getText('алфавиту') . '</option>';
// 					echo '<option value="no_cc">' . Service_Translate::getText('упрощенному бронированию') . '</option>';
// 					echo '<option value="room1Price">' . Service_Translate::getText('цене одноместного') . '</option>';
// 					echo '<option value="room2Price">' . Service_Translate::getText('цене двухместного') . '</option>';
// 					echo '<option value="room3Price">' . Service_Translate::getText('цене трехместного') . '</option>';
// 					echo '<option value="review_score">' . Service_Translate::getText('оценке') . '</option>';		
// 					echo '<option value="discount">' . Service_Translate::getText('скидке') . '</option>';		
// 				echo '</select>';
// 			echo '</div>';
			// Фильтр по кол-ву человек
// 			echo '<div id="countPeople">';
// 				echo '<div class="man1" title="' . Service_Translate::getText('1 номер') . '. ' . Service_Translate::getText('Отобразить') . '">' . Service_Translate::getText('1 номер') . '</div>';
// 				echo '<div class="man2" title="' . Service_Translate::getText('2 номер') . '. ' . Service_Translate::getText('Отобразить') . '">' . Service_Translate::getText('2 номер') . '</div>';
// 				echo '<div class="man3" title="' . Service_Translate::getText('3 номер') . '. ' . Service_Translate::getText('Отобразить') . '">' . Service_Translate::getText('3 номер') . '</div>';
// 				echo '<div class="man4" title="' . Service_Translate::getText('4 номер') . '. ' . Service_Translate::getText('Отобразить') . '">' . Service_Translate::getText('4 номер') . '</div>';
// 			echo '</div>';
// 			// Фильтр по валюте
// 			echo '<div id="currencyFilter"></div>';
// 			// Фильтр по услугам
// 			echo '<div id="hotelsServices">';
// 				echo '<a href="#" class="gray"><span class="gray"><nobr>' . Service_Translate::getText('Услуги в отеле') . '</nobr></span></a>';
// 				echo '<div id="hotelsServicesList" class="dropShadow">';
// 					$objHotelFacility = new HotelFacility();
// 					$arrFilter['hotel_facility'] = Service_ArrayConverter::makeKeyArrayFromMultyArray($objHotelFacility->getHotelFacilityTypes(true), 'ID_hotel_facility_type');
// 					foreach ($arrFilter['hotel_facility'] as $i => $arrHotelFacility) {
// 						echo '<p>';
// 						$objCheckbox = new Form_Checkbox(array('label' => $arrHotelFacility['hotel_facility_type_name'], 'class' => 'filter_hotel_facility', 'attr' => array('data-ID-hotel-facility-type' => $i), 'id'=>'filter-facility-'.$i), null, true);
// 						echo '</p>';
// 					}					
// 					echo '<p>';
// 					$objCheckbox = new Form_Checkbox(array('label' => Service_Translate::getText('Завтрак включен'), 'class' => 'filter_hotel_facility', 'attr' => array('data-ID-hotel-facility-type' => -1), 'id'=>'filter-facility-'.(-1)), null, true);
// 					echo '</p>';
// 				echo '</div>';
// 			echo '</div>';
			// Фильтр по звездам	
// 			echo '<div class="starsFilter" id="starsFilter">';
// 				echo '<div class="star1 stars from" data-star=1><div></div></div>';	
// 				echo '<div class="separator">-</div>';
// 				echo '<div class="star5 stars to" data-star=5><div></div></div>';				
// 			echo '</div>';
		echo '</div>';		
	}
	
	
	
	/**
	 * Выводит инфу о ревизии на сервере
	 * 
	 * @param array $arrRevisionInfo - Данные о ревизии
	 */
	public function showRevision($arrRevisionInfo) {
		Service_Debug::setDebug();
    echo 'Ревизия: ' . $arrRevisionInfo[3] . '<br />';
		$arrRevisionInfo[9] = strtotime($arrRevisionInfo[9]);
    echo 'Дата: ' . gmdate("d.m.y", $arrRevisionInfo[9] + 4 * 3600) . '<br />';
    echo 'Время: ' . gmdate("H:i:s", $arrRevisionInfo[9] + 4 * 3600) . '<br />';
    $arrRepo = explode('/', $arrRevisionInfo[4]);
    $branch = array_pop($arrRepo);
    echo 'Ветка: /' . $branch;  		
	}
	
	/**
	 * Формируем блоки для бронирования
	 * 
	 * @param array $arrBlocks - Блоки в формате Booking
	 * @param BaseHotel $objHotel - Отель
	 */
	public static function getBookBlocks(array $arrBlocks, BaseHotel $objHotel) {
		Service_Debug::setDebug();
		$objViewHotel = new View_Hotel();
		$arrReturn = array();
		foreach ($arrBlocks as $arrBlock) { // Формируем блоки для вывода
			$arrPrices = array();
			if (!empty($arrBlock)) {
				if (isset($arrBlock['incremental_price'][0])) $arrPrices = $arrBlock['incremental_price'];
				else $arrPrices[0] = $arrBlock['incremental_price'];
				$arrReturn[$arrBlock['block_id']]['guest_qty'] = $arrBlock['max_occupancy'];
				$arrReturn[$arrBlock['block_id']]['prices'] = Service_ArrayConverter::getColumn($arrPrices, 'price');
				$arrReturn[$arrBlock['block_id']]['currency'] = $arrPrices[0]['currency'];
				$arrReturn[$arrBlock['block_id']]['bb'] = $arrBlock['breakfast_included'] ? intval($arrBlock['breakfast_included']) : 0;
				$arrReturn[$arrBlock['block_id']]['dr'] = $arrBlock['deposit_required'] ? 1 : 0;
				$arrReturn[$arrBlock['block_id']]['is_flash_deal'] = isset($arrBlock['is_flash_deal']) ? $arrBlock['is_flash_deal'] : 0;
				$arrReturn[$arrBlock['block_id']]['charge_before'] = isset($arrBlock['charge_before']) ? intval($arrBlock['charge_before']) : 0;
				$arrReturn[$arrBlock['block_id']]['charge_after'] = isset($arrBlock['charge_after']) ? intval($arrBlock['charge_after']) : 0;
				$arrReturn[$arrBlock['block_id']]['refundable_until'] = isset($arrBlock['refundable_until']) ? $arrBlock['refundable_until'] : '';
				$arrReturn[$arrBlock['block_id']]['free'] = $arrBlock['refundable'] ? 1 : 0;
				$arrReturn[$arrBlock['block_id']]['name'] = $objViewHotel->makeBlockName($arrBlock['name']);
				$arrReturn[$arrBlock['block_id']]['text'] = $objViewHotel->makeBlockText($arrBlock['block_text']);
				$arrReturn[$arrBlock['block_id']]['cancellation'] = Service_Booking::getRoomCancellationPolicy($arrBlock, $objHotel);
			}
		}	
		return $arrReturn;	
	}
	
	/**
	 * Выводит баннер с картинками не главной странице
	 */
	public function showMainPageBanner() {
		Service_Debug::setDebug();
		echo '<div id="main-page-banner" class="full-border">';
			echo '<div id="picture-box">';
				echo '<img src="' . W_IMAGES . 'pic1.jpg" class="active" style="opacity: 1;">';
				echo '<img src="' . W_IMAGES . 'pic2.jpg">';
				echo '<img src="' . W_IMAGES . 'pic3.jpg">';
				echo '<img src="' . W_IMAGES . 'pic4.jpg">';
			echo '</div>';
			echo '<div id="banner-links">';
				echo '<a href="' . W_ABSPATH .'szfo" class="banner-link">Грузоперевозки Северо-Заподного ФО</a>';
				echo '<a href="' . W_ABSPATH .'tsfo" class="banner-link">Грузоперевозки Центрального ФО</a>';
				echo '<a href="' . W_ABSPATH .'pfo" class="banner-link">Грузоперевозки Приволжского ФО</a>';
				echo '<a href="' . W_ABSPATH .'ufo" class="banner-link">Грузоперевозки Уральского ФО</a>';
			echo '</div>';
		echo '</div>';
	}
	
	/**
	 * Выводит контент главной странице(два столбца)
	 */
	public function showMainContect(FederalDistrict $objFederalDistrict, $mainBlockContent) {
		Service_Debug::setDebug();
		$mainCitiesArray = $objFederalDistrict->getMainCities(7);		// Массив городов для "Популярные города"
		
		echo '<div class="content-container">';
			echo '<div class="left-column">';
				echo '<div class="full-border"">';
					echo '<div class="subtitle-top-radius">';
						echo 'ПОПУЛЯРНЫЕ ГОРОДА';
					echo '</div>';
					echo '<div class="simple-content">';
						foreach($mainCitiesArray AS $mainCitieArray) {
							echo '<div class="pop-cities">';
								echo '<a href="' . W_ABSPATH . $objFederalDistrict->getField('federal_district_url') . '/' . $mainCitieArray['city_url'] . '">' . $mainCitieArray['city_name'] . '</a>';
							echo '</div>';
						}
					echo '</div>';
				echo '</div>';
				
				echo '<div class="full-border"">';
					echo '<div class="subtitle-top-radius">';
						echo 'ПОПУЛЯРНЫЕ МАРШРУТЫ';
					echo '</div>';
						echo '<div class="simple-content">';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/moscow-saint_petersburg">Санкт-Петербург - Москва</a>';
							echo '</p>';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/saint_petersburg-arhangelsk">Санкт-Петербург - Архангельск</a>';
							echo '</p>';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/saint_petersburg-kaliningrad">Санкт-Петербург - Калининград</a>';
							echo '</p>';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/saint_petersburg-pskov">Санкт-Петербург - Псков</a>';
							echo '</p>';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/vologda-cherepovets">Череповец - Вологда</a>';
							echo '</p>';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/velikiy_novgorod-vologda">Великий Новгород - Вологда</a>';
							echo '</p>';
							echo '<p>';
								echo '<a href="' . W_ABSPATH . 'routes/murmansk-petrozavodsk">Мурманск - Петрозаводск</a>';
							echo '</p>';
						echo '</div>';
					echo '</div>';
				echo '</div>';
			echo '</div>';

			echo '<div class="main-content full-border"">';
			echo '<div class="subtitle-top-radius">';
				echo 'О КОМПАНИИ';
			echo '</div>';
			echo '<div class="simple-content">';
				echo $mainBlockContent;
			echo '</div>';
			echo '</div>';
		echo '</div>';
	}
}
?>